gpt4 book ai didi

mysql - SQL 最大日期相关问题

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

我对 SQL 中的 max(date) 有点问题。基本上,问题是我必须检查 id 输入的最新日期是否超过 1 天,然后返回该日期。

   id|  user_id|           send_date
8 | 90 | 2016-10-21 14:31:14
| 10 | 90 | 2016-10-25 09:56:28
| 11 | 18 | 2016-10-22 09:56:28
| 12 | 19 | 2016-10-21 09:56:28
| 13 | 19 | 2016-10-23 09:56:28
| 13 | 20 | 2016-10-25 09:56:28

这是一个更长的 SQL 的一部分(只是我遇到问题的部分):

SELECT max(h.send_date) as lastSent 
FROM history h
WHERE (h.send_date < NOW() - INTERVAL 1 DAY);

现在发生的情况是,我没有选择最新输入日期早于 1 天的行,而是得到了早于 1 天的最新行,即使表中有更新的条目也是如此。

有没有人知道如何更改它,以便 SQL 只返回早于 24 小时的最新日期表中最新的(按用户)(在示例中,它会必须返回任何内容,因为有一个小于 24 小时的条目)?

稍微编辑了表格示例。这是我需要得到的结果(user_ids 90 和 20 由于 2016-10-25 09:56:28 而被忽略):

  18 |  2016-10-22 09:56:28
19 | 2016-10-23 09:56:28

最佳答案

对于聚合函数,你应该使用 having 而不是 where

SELECT max(h.send_date) as lastSent 
FROM history h
having max(h.send_date ) < DATE_SUB(NOW() ,INTERVAL 1 DAY) ;

关于mysql - SQL 最大日期相关问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40233481/

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