gpt4 book ai didi

mysql - 如何在mysql中获取每周的最后一条记录

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

我的表中有数据,其中可能有也可能没有每天的记录。我需要获取最近 6 周的数据,其中我只需要每周的最后一条记录。

假设今天是24号,我需要获取从18号到24号、11号到17号等等直到6周的最后一条记录。

这个查询给出了所有 6 周的记录,但我需要每周的最后一条记录。

SELECT snap.created_at
FROM snapshots snap
WHERE snap.created_at > DATE_SUB(NOW(), INTERVAL 6 WEEK)
ORDER BY created_at DESC;

示例:

已创建_AT

2017-03-23 11:20:30

2017-03-23 10:40:21

2017-03-21 09:58:42

2017-03-03 15:02:20

2017-03-02 14:41:49

2017-02-23 10:59:26

2017-02-22 15:59:53

2017-02-21 11:08:57

2017-02-21 10:43:24

2017-02-18 01:37:33

2017-02-11 01:38:29

输出:

(第一周)2017-02-11 - 2017-02-17 = 2017-02-11 01:38:29

(第二周)2017-02-18 - 2017-02-24 = 2017-02-23 10:59:26

(第三周)2017-02-25 - 2017-03-03 = 2017-03-03 15:02:20

(第4周)2017-03-04 - 2017-03-10 = 2017-03-03 15:02:20(由于本周没有记录,需要显示上周的最新记录)

(第5周)2017-03-11 - 2017-03-17 = 2017-03-03 15:02:20(由于本周没有记录,需要显示上周的最新记录)

(第六周)2017-03-18 - 2017-03-24 = 2017-03-23 11:20:30

最佳答案

试试这个

select datepart(wk, datecolumn), max(datecolumn) from yourtable
where (datediff(wk,datecolumn,getdate())) < 6
group by datepart(wk, datecolumn)
order by 2 desc

关于mysql - 如何在mysql中获取每周的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42992053/

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