我有这样的数据表
id, name, timestamp
xx,abc,01-01-2022
x1,abc,01-02-2022
x2,abc,01-03-2022
x3,aby,01-01-2022
x4,aby,01-02-2022
x5,aby,01-03-2022
如何得到最大timestamp
和最大name is abc
的id
?
预期输出
x2
您可以像下面的一样使用DENSE_RANK()
窗口函数
SELECT id
FROM (SELECT t.*, DENSE_RANK() OVER(PARTITION BY name ORDER BY timestamp DESC) AS dr
FROM t) tt
WHERE dr = 1
and name = 'abc'
其中最新的(按降序排序的时间戳列(值在顶部返回。