ser*_*erg 1 mysql sql group-by
我有文章表:
id | type | date
-----------------------
1 | A | 2010-01-01
2 | A | 2010-01-01
3 | B | 2010-01-01
Run Code Online (Sandbox Code Playgroud)
字段type可以是A,B或C.
我需要运行一个报告,每天返回每种类型的文章数量,如下所示:
date | count(type="A") | count(type="B") | count(type="C")
-----------------------------------------------------
2010-01-01 | 2 | 1 | 0
2010-01-02 | 5 | 6 | 7
Run Code Online (Sandbox Code Playgroud)
目前,我为每种类型运行3个查询,然后手动合并结果
select date, count(id) from article where type="A" group by date
Run Code Online (Sandbox Code Playgroud)
是否可以在一个查询中执行此操作?(在纯sql中,没有存储过程或类似的东西).
谢谢
SUM和CASE的组合应该做ya
select date
, sum(case when type ='A' then 1 else 0 end) as count_type_a
, sum(case when type ='B' then 1 else 0 end) as count_type_b
, sum(case when type ='C' then 1 else 0 end) as count_type_c
from article group by date
Run Code Online (Sandbox Code Playgroud)