我有下表:
id|overtime| date
--+--------+-----------
1 | yes | 2017-03-10
2 | no | 2017-07-16
3 | yes | 2017-01-22
4 | no | 2017-07-14
现在我想对是
和否
求和并按季度排序(Q1
,Q2
,Q3
,Q4
):
yes| no| quarter
---+---+---------------
13 | 4| Q1
2 | 5| Q2
8 | 14| Q3
12 | 12| Q4
我的解决方案:
SELECT
(select count(*) As sum_yes from dashboard where overtime = 'Yes' ) as yes,
(select count(*) As sum_no from dashboard where overtime = 'No' ) as no,
(SELECT quarter(date) as quarter from dashboard)
group by quarter
我知道这行不通。很高兴得到一些帮助。
最佳答案
使用条件聚合:
select year(date) as yyyy, quarter(date) as q,
sum(overtime = 'Yes') as yes,
sum(overtime = 'No') as no
from dashboard
group by yyyy, q;
请注意,这包括年份。我将“季度”解释为按年份区分。如果您想合并多年的数据,请删除该组件。
MySQL 将 bool 值视为数字上下文中的整数,“1”表示 true,“0”表示 false。
关于mysql - SQL 查询 - 按季度排序是和否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46631372/