gpt4 book ai didi

MySQL 选择具有 LEAST 条件的重复项

转载 作者:行者123 更新时间:2023-11-29 03:22:21 24 4
gpt4 key购买 nike

我正在尝试查找重复项并选择表格中具有最小值组合的结果。

到目前为止,我只能使用 MIN() 选择列中具有最低值的结果。我认为将 MIN 替换为 LEAST 并更改列会很容易。

这是一个布局:

 CREATE TABLE `index`.`products` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(10) NOT NULL , `price` INT NOT NULL , `availability` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

INSERT INTO `products` (`id`, `name`, `price`, `availability`) VALUES
(NULL, 'teste', '10', '1'),
(NULL, 'teste', '5', '2'),
(NULL, 'teste', '3', '3');

简化的布局

id - name - price - availabilty
1 - test - 10 - 1
2 - test - 5 - 2
3 - test - 3 - 3

使用以下查询:

select name, MIN(price) from products group by name having count(*) > 1

给我最低价。我试图获得最低的价格和最低的可用性。

select name, LEAST(price, availability) from products group by name having count(*) > 1

这行不通。

澄清:我想选择价格最低和可用性最低的行。在这种情况下,我猜它应该是第一个。

我应该澄清一下,1=可用,2=不可用,3=即将推出

最佳答案

选择最低价格以获得最佳可用性的语句是:

set sql_mode=only_full_group_by;
SELECT
name, MIN(price), availability
FROM
products
JOIN
(
SELECT
name, MIN(availability) availability
FROM
products
GROUP BY name
) as x
USING (name , availability)
GROUP BY name , availability;

关于MySQL 选择具有 LEAST 条件的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42097999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com