gpt4 book ai didi

mysql - SQL选择用户的唯一列表,以及其他数据取决于时间戳

转载 作者:可可西里 更新时间:2023-11-01 07:02:50 25 4
gpt4 key购买 nike

我在 SQL 中有一个表,该表是这样的:

+-------------+---------------+-------------------------+
| quotes_user | email_address | ________Sent_at________ |
+-------------+---------------+-------------------------+
| user1 | email1 | 2012-10-09 12:23:53.253 |
| user1 | email2 | 2012-10-09 12:24:53.253 |
| user2 | email3 | 2012-10-09 13:20:53.253 |
| user2 | email4 | 2012-10-09 11:23:53.253 |
| user3 | email5 | 2012-10-08 10:29:53.253 |
| user3 | email6 | 2012-10-08 14:23:53.253 |
+-------------+---------------+-------------------------+

我要显示结果

+-------------+---------------+-------------------------+
| quotes_user | email_address | ________Sent_at________ |
+-------------+---------------+-------------------------+
| user1 | email2 | 2012-10-09 12:24:53.253 |
| user2 | email3 | 2012-10-09 13:20:53.253 |
| user3 | email6 | 2012-10-08 14:23:53.253 |
+-------------+---------------+-------------------------+

即我想选择唯一用户列表,以及与他们关联的最新电子邮件地址。

另一种解释问题的方法是,我想选择一个不包含在任何聚合函数或 order by 子句中的字段。我已经尝试了许多语句,其中包含 Distinct 和 Order By、Group By 等的大量排列,但都没有用。

我试图避免多重陈述。

请帮我解决这个问题。

最佳答案

查询背后的想法是为子查询中的每个 quotes_user 获取它们的最大 Sent_AT 并将其连接回原始表。

SELECT  a.*
FROM tableName a INNER JOIN
(
SELECT quotes_user, MAX(Sent_AT) maxSENT
FROM tableName
Group By quotes_user
) b on a.quotes_user = b.quotes_user AND
a.Sent_AT = b.maxSent

SQLFiddle Demo

关于mysql - SQL选择用户的唯一列表,以及其他数据取决于时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813561/

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