我有一个名为“历史”的表格,下面有一些示例数据:
SITE_ID TARGET_PRIMARY_KEY TARGET_TABLE UPDATED_AT USER_ID
1 1025test 4 2018/10/25 12:01 e4
1 1025test 4 2018/10/25 12:02 e1
1 1025test 4 2018/10/25 12:03 e2
1 1025test 4 2018/10/25 12:04 e3
1 aaa 4 2018/10/19 15:01 e1
5 aaa 7 2018/10/19 15:02 e2
1 aaa 4 2018/10/19 15:03 e3
1 aaa 4 2018/10/19 15:04 e4
1 aaa 4 2018/10/19 15:05 e5
1 aaa 4 2018/10/19 15:06 e6
我想要达到的是:对于每一个独特的组合 "SITE_ID"
以及 "TARGET_PRIMARY_KEY"
,选取具有最大(最新)值的记录 "UPDATED_AT"
并确定相应的 "USER_ID"
是正确的。
预期结果是:
1 1025test 4 2018/10/25 12:04 e3
1 aaa 4 2018/10/19 15:06 e6
我尝试了以下sql:
SELECT
hist.SITE_ID AS siteId,
TARGET_PRIMARY_KEY AS skey,
hist.TARGET_TABLE AS targetTable,
MAX(UPDATED_AT) AS lastActionDate,
hist.USER_ID
FROM
history AS hist
WHERE
hist.TARGET_TABLE = 4
AND hist.SITE_ID = 1
GROUP BY TARGET_PRIMARY_KEY
然而 "USER_ID"
信息似乎与 "UPDATED_AT"
我得到了:
1 1025test 4 2018/10/25 12:04 e4
有人能给我一些建议吗?谢谢。
1条答案
按热度按时间gab6jxml1#
我将使用相关子查询: