我有下表:
id value date
--------- --------- ----------
1 324 2017-05-19 02:00:00
2 564 2017-05-19 04:00:00
3 675 2017-05-19 03:00:00
3 642 2017-05-19 05:00:00
4 642 2017-05-19 07:00:00
5 642 2017-05-19 06:00:00
6 642 2017-05-19 05:00:00
6 642 2017-05-19 12:00:00
7 642 2017-05-19 01:00:00
8 642 2017-05-19 13:00:00
8 642 2017-05-19 02:00:00
我想 GROUP BY
id
列,但还要从第一列中选择 value
和 date
列按 date
降序排列的行,带有 id
。
结果应该是这样的:
id value date
--------- --------- ----------
1 324 2017-05-19 02:00:00
2 564 2017-05-19 04:00:00
3 642 2017-05-19 05:00:00
4 642 2017-05-19 07:00:00
5 642 2017-05-19 06:00:00
6 642 2017-05-19 12:00:00
7 642 2017-05-19 01:00:00
8 642 2017-05-19 13:00:00
最佳答案
这样的事情应该可以工作:
SELECT t1.id, t1.value, t1.date
FROM your_table t1
INNER JOIN (
SELECT id, MAX(date) date
FROM your_table
GROUP BY id
) t2
ON t1.id = t2.id AND t1.date = t2.date
关于sql - 按最大日期和 ID 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44063719/