This question already has answers here:
SQL select only rows with max value on a column [duplicate]
(27个答案)
4年前关闭。
初始表如下所示:
结果,我希望看到的是按Item_ID以及所有其他列分组的最高级别的生产线(因为它们根据所在的级别从1开始编号):
当我在查询末尾将SELECT与MAX(Production_line)以及GROUP BY Item_ID一起使用以根据Item_ID对水果进行分组时,我没有得到正确的生产日期(不确定是否拉随机的日期或什么) )或产生的正确数量。
我在此表中没有主键。
我正在使用MySQL使用phpMyAdmin。
(27个答案)
4年前关闭。
初始表如下所示:
Fruit | Item_ID | Production_line | Amount_produced | Production_date
---------------------------------------------------------------
Apples | 652 | 1 | 24 | 2016-05-12
Pears | 455 | 4 | 54 | 2016-05-16
Pears | 455 | 2 | 26 | 2016-05-13
Apples | 652 | 6 | 65 | 2016-05-14
Apples | 652 | 3 | 24 | 2016-05-21
Pears | 455 | 7 | 54 | 2016-05-17
Pears | 455 | 5 | 26 | 2016-05-15
Apples | 652 | 8 | 65 | 2016-05-22
结果,我希望看到的是按Item_ID以及所有其他列分组的最高级别的生产线(因为它们根据所在的级别从1开始编号):
Fruit | Item_ID | Production_line | Amount_produced | Production_date
---------------------------------------------------------------
Pears | 455 | 7 | 54 | 2016-05-17
Apples | 652 | 8 | 65 | 2016-05-22
当我在查询末尾将SELECT与MAX(Production_line)以及GROUP BY Item_ID一起使用以根据Item_ID对水果进行分组时,我没有得到正确的生产日期(不确定是否拉随机的日期或什么) )或产生的正确数量。
我在此表中没有主键。
我正在使用MySQL使用phpMyAdmin。
最佳答案
有一个子查询,返回的每个水果的Production_line值最高。 JOIN
的结果:
select f1.*
from fruits f1
join (select fruit, max(Production_line) as maxProduction_line
from fruits
group by fruit) f2
on f1.fruit = f2.fruit and f1.Production_line = f2.maxProduction_line
关于mysql - SQL选择组的最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42902111/
10-10 11:11