【问题标题】:Query for get lastupdate datetime in redudant date table [closed]在冗余日期表中查询获取 lastupdate 日期时间 [关闭]
【发布时间】:2021-07-07 20:50:16
【问题描述】:

我想通过 updateTime 获取 lastupdate 日期时间顺序,但防止在我的输出中出现冗余日期

想要的结果

2021-06-25 15:46:57
2021-06-26 15:48:52
2021-06-27 17:11:52
2021-06-28 17:17:33
2021-06-29 15:16:29

我试过了

SELECT t.updateHistoryID, t.updateTime 
FROM web_historyupdate t 
    INNER JOIN ( SELECT updateHistoryID, max(updateTime) as maxdate 
                FROM web_historyupdate 
                GROUP BY updateHistoryID ) tm 
            ON t.updateHistoryID =tm.updateHistoryID 
        AND t=tm.maxdate

【问题讨论】:

  • 看起来你想要每个日期的最大日期时间。 “最大值”在 SQL 中转换为 MAX,“每”转换为 GROUP BY。这有帮助吗?
  • 好的,谢谢 RiggsFolly,我在这里有一些查询,请给我一些评论,SELECT t.updateHistoryID, t.updateTime FROM web_historyupdate t INNER JOIN (SELECT updateHistoryID, max(updateTime) as maxdate FROM web_historyupdate GROUP BY updateHistoryID ) tm ON t.updateHistoryID =tm.updateHistoryID AND t=tm.maxdate
  • 是的,我正在寻找每个日期的最大日期时间
  • 您可以尝试GROUP BY DATE( updateTime ),因为您想要每天而不是每个 ID 的最大日期时间

标签: mysql sql


【解决方案1】:

您想要每个日期的最大日期时间。如前所述,“最大值”在 SQL 中转换为 MAX,而“每个”转换为 GROUP BY。将其应用于您的数据的一种方法:

select *
from web_historyupdate
where updateTime in
(
  select max(updateTime)
  from web_historyupdate
  group by date(updateTime)
)
order by updateTime;

当然还有其他方法可以做到这一点。例如,您可以在以后的同一天选择NOT EXISTS 的每一行。

【讨论】:

    猜你喜欢
    • 2017-12-16
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多