| ID|日期|col1|
| - -----|- -----|- -----|
| 一个|2022年1月1日|苹果|
| 一个|2022年02月01日|橙子|
我已经有一段时间没有使用sql了(使用oracle fyi)。如果我想拉取唯一ID的最新日期(在这种情况下,只有第二行应该在结果中拉取),我怎么做?
我试过:
SELECT ID, MAX(DATE), col1
FROM table
GROUP BY ID
现在这不起作用了,因为我需要在SELECT中聚合col 1,或者在GROUP BY中抛出它。如果我把它扔到GROUP BY中,我会得到结果中的两行,对吗?但是如果我希望行基于max(date),我也不认为聚合col 1有什么意义。我错过了什么吗?
2条答案
按热度按时间ipakzgxi1#
您可以使用LAG()、**LEAD()****ROW_NUMBER()**函数来实现此目标。检查我下面的查询。
使用LAG():
使用LEAD():
使用ROW_NUMBER():
u4dcyp6a2#
可以使用
ROW_NUMBER()
。例如: