Sql 在具有重复键的表中查找具有不同键的最新记录
我一直在尝试在一个表中查找最新的记录,该表包含一个包含重复键的表,如下表所示:Sql 在具有重复键的表中查找具有不同键的最新记录,sql,amazon-redshift,Sql,Amazon Redshift,我一直在尝试在一个表中查找最新的记录,该表包含一个包含重复键的表,如下表所示: id | user | timestamp -----------+---------------+------------------------- aaa | user_5 | 2015-01-28 22:28:55.111 aaa | user_6 | 2015-01-29 22:28:55.111 aaa
id | user | timestamp
-----------+---------------+-------------------------
aaa | user_5 | 2015-01-28 22:28:55.111
aaa | user_6 | 2015-01-29 22:28:55.111
aaa | user_1 | 2015-01-24 22:28:55.111
aaa | user_4 | 2015-01-27 22:28:55.111
aaa | user_8 | 2015-01-31 22:28:55.111
aaa | user_2 | 2015-01-25 22:28:55.111
aaa | user_0 | 2015-01-23 22:28:55.111
aaa | user_9 | 2015-01-22 22:28:55.111
zzz | user_new | 2015-01-22 22:28:55.111
aaa | user_3 | 2015-01-26 22:28:55.111
aaa | user_7 | 2015-01-30 22:28:55.111
预期的结果是
id | user | timestamp
-----------+---------------+-------------------------
aaa | user_8 | 2015-01-31 22:28:55.111
zzz | user_new | 2015-01-22 22:28:55.111
我想不出能得到想要的结果。请帮助行号()
是一个简单的解决方案:
select id, user, timestamp
from (select t.*, row_number() over (partition by id order by timestamp desc) as seqnum
from t
) t
where seqnum = 1;
你可以试试这个查询
SELECT
id ,
user ,
timestamp
FROM
[table name]
WHERE
timestamp=(SELECT MAX(timestamp) FROM [table name])
GROUP BY
id