SQL 最大日期相关问题

SQL max date related issue

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

   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 天的最新行,即使 table 中有更新的条目也是如此。

有谁知道如何更改它,以便 SQL 仅 return 比 24 小时大的最新日期 最新的 (由用户)在 table 中(在示例中,它必须 return 什么都没有,因为有一个条目小于 24 小时)?

稍微编辑了 table 示例。这是我需要得到的结果(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) ;