繁体   English   中英

MySQL查询返回按一周的第一天分组的数据

[英]MySQL Query to return data grouped by first day of the week

我有一个订阅表,其中包含 id、date、subscription_id 列。 现在,我想要一个查询返回按一周的第一天(星期日)每周分组的总订阅数(计数),如下所示; 订阅表;

ID 客户 sub_id 日期
1 约翰 100 2022 年 8 月 5 日
2 詹姆士 101 2022 年 9 月 5 日
3 102 2022 年 9 月 5 日
4 安妮 103 2022 年 11 月 5 日
5 麦克风 104 2022 年 5 月 17 日
6 詹姆士 105 19/05/2022
7 安迪 106 22/05/2022
8 溶胶 107 23/05/2022
9 约翰 108 23/05/2022
10 菲尔 109 24/05/2022
11 加里 110 25/05/2022
12 戴夫 111 26/05/2022

样本结果;

周开始 全部的
2022 年 8 月 5 日 4
15/05/2022 2
22/05/2022 6

我试过这个;

SELECT WEEK(date) AS Week, COUNT(*) AS Total FROM subscriptions 
GROUP BY Week;

但我得到的是周数,而不是我的示例结果中所示的一周的第一天。

我怎样才能达到我在示例结果中指出的内容?

你可以试试

 select ANY_VALUE(STR_TO_DATE(CONCAT(DATE_FORMAT(`date`,'%Y%U') ,"0"),'%Y%U%w')) as 'Week Starting',
 count(*) as Total
 from subscriptions 
 group by DATE_FORMAT(`date`,'%Y%U');

这是我的建议,假设表是名称subscription

select count(id) `Total`, date_format(created_at, '%Y-%m-%d') `Week Starting`
from subscription where date_format(created_at, '%a') = 'Sun'
group by `Week Starting`

希望它可以提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM