gpt4 book ai didi

mysql - 在 MYSQL 中的特定条件下查找最新日期的记录以及其他相应的值

转载 作者:搜寻专家 更新时间:2023-10-30 23:28:14 25 4
gpt4 key购买 nike

我有一个名为“history”的表,下面有一些示例数据:

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

有人可以给我一些建议吗?谢谢。

最佳答案

我会为此使用相关子查询:

select h.*
from history h
where h.updated_at = (select max(h2.updated_at)
from history h2
where h2.site_id = h.site_id and
h2.target_primary_key = h.target_primary_key
);

关于mysql - 在 MYSQL 中的特定条件下查找最新日期的记录以及其他相应的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53404988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com