【发布时间】:2021-11-19 23:44:53
【问题描述】:
我有一张这样的桌子
id | start | Value | Value2 | Value3
1 | 2019-01-01 22:15:02 | A | P | C
2 | 2019-01-01 22:35:23 | B | O | G
4 | 2019-01-02 22:35:36 | C | D | H
5 | 2019-01-02 22:37:15 | D | C | F
7 | 2019-01-03 17:26:36 | C | K | M
10 | 2019-01-03 12:05:15 | D | J | L
我有很多同一天的记录,但时间不同。
我需要从DateTime 字段中选择每个day 中的最新一个。
它应该返回 ID 的记录:
id: 2 for Jan 1
id: 5 for Jan 2nd
id: 7 for January 3rd
试过了,没有成功:
SELECT value, value2, value3
FROM myTable AS mt
INNER JOIN (
SELECT id, MAX(start)
FROM myTable
GROUP BY start
) AS b ON mt.id = b.id
我没有收到任何错误,但数据混淆了。它显示了最新的 dateTime 值,但其余字段(Value、value2、value3)是错误的。它们与最新的行不匹配。
【问题讨论】:
标签: mysql sql greatest-n-per-group