gpt4 book ai didi

Mysql group by weekday,补缺的工作日

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

我的 MySQL 查询有问题,它按工作日对表中的数据进行分组。

我需要它来填写数据中缺失的工作日,例如下面 SQL 示例中的星期日(第 7 个工作日)。

SQL Fiddle

MySQL 5.6 架构设置:

create table test (
`id` INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`date` DATETIME
);

INSERT INTO test (`date`) VALUES
('2016-05-16 00:00:00'),
('2016-05-17 00:00:00'),
('2016-05-18 00:00:00'),
('2016-05-20 00:00:00'),
('2016-05-21 00:00:00'),
('2016-05-22 00:00:00'),
('2016-05-16 00:00:00'),
('2016-05-17 00:00:00'),
('2016-05-18 00:00:00'),
('2016-05-20 00:00:00');

查询 1:

SELECT WEEKDAY(date) AS weekday,
COUNT(id) AS posts
FROM test
GROUP BY WEEKDAY(date)

Results :

| weekday | posts |
|---------|-------|
| 0 | 2 |
| 1 | 2 |
| 2 | 2 |
| 4 | 2 |
| 5 | 1 |
| 6 | 1 |

我希望它也返回这一行。

|       3 |     0 |

我的完整查询非常复杂,所以我希望您能找到一个快速的解决方案。

最佳答案

通常的方法是左连接:

select wd.wd, count(t.id)
from (select 1 as wd union all select 2 union all select 3 union all select 4 uion all
select 5 union all select 6 union all select 7
) wd left join
test t
on wd.wd = weekday(t.date)
group by wd.wd
order by wd.wd;

关于Mysql group by weekday,补缺的工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403859/

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