gpt4 book ai didi

mysql - 查询 : Check previous row value

转载 作者:行者123 更新时间:2023-11-29 12:51:00 26 4
gpt4 key购买 nike

我有这样的查询

   SELECT * FROM `message` WHERE sender = 10
ORDER BY `message`.`date` AND `message`.`topic` ASC

此查询显示每条消息。我只想选择日期最早的特定主题的第一行。

有什么办法可以通过sql方式解决这个问题吗?

最佳答案

如果只想显示最早的日期,这一行没有其他信息,可以做得非常简洁:

   SELECT topic, MIN(date)
FROM message
WHERE sender = ?
GROUP BY topic;

如果你想显示整行,那就有点冗长了。此示例假设 (sender,topic,date) 是唯一的,如果不是,您需要做一些额外的工作来消除重复项。

WITH minDate AS
(
SELECT sender, topic, MIN(date) AS date
FROM message
GROUP BY sender, topic;
)
SELECT m.*
FROM message m
JOIN minDate d ON m.topic = d.topic AND m.date = d.date AND d.sender = m.sender
WHERE sender = ?;

关于mysql - 查询 : Check previous row value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24723270/

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