MySql每天为每个id找到最大项目

时间:2018-01-18 19:04:26

标签: mysql

我有一个像这样的MySQL表:

id | day | item
---------------
 1 |   1 |    A
 1 |   2 |    B
 1 |   3 |    A
 2 |   1 |    C
 2 |   2 |    C
 2 |   5 |    B
 3 |   6 |    A
 3 |   7 |    C

我希望每天获得每个ID的最后一项。所以输出将是这样的:

id | day | item
---------------
 1 |   3 |    A
 2 |   5 |    B
 3 |   7 |    C

实现这一目标的最佳方法是什么?

我知道当所有day的最后一个id相同时如何执行此操作,但在每个id可能的情况下我不知道如何执行此操作有一个不同的最后一天。

1 个答案:

答案 0 :(得分:2)

这应该有效:

select table.* from table
join (select id, max(day) as day from table group by id) 
as m on m.id = table.id and m.day = table.day