身份证 | 价值 | 日期 |
---|---|---|
1 | 10 | 2023-10-12 16:10:59.457 |
1 | 20 | 2023-10-12 14:20:54.997 |
1 | 30 | 2023-10-13 10:30:59.457 |
1 | 70 | 2023-10-13 10:20:54.997 |
2 | 10 | 2023-10-12 18:00:59.457 |
2 | 20 | 2023-10-13 14:00:54.997 |
我有一个包含 ID、一些值和日期字段的表,我想按 ID 和日期进行分组,但只取每个 ID 的最大日期值。
身份证 | 价值 | 日期 |
---|---|---|
1 | 10 | 2023-10-12 16:10:59.457 |
1 | 30 | 2023-10-13 10:30:59.457 |
2 | 10 | 2023-10-12 18:00:59.457 |
2 | 20 | 2023-10-13 14:00:54.997 |
使用Windowing概念来解决这个问题。
SELECT id,
value,
date,
ROW_NUMBER(date) OVER
(PARTITION BY id,TO_DATE(date) ORDER BY date DESC)
AS row_number
FROM YOUR_TABLE
WHERE row_number = 1