在MySQL中需要某种"条件分组"

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中,没有存储过程或类似的东西).

谢谢

Ale*_*use 8

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)