Shi*_*isa 1 sql postgresql pivot crosstab
我有一张桌子,它是这样的:
ID item_type date
1 apple 2016-12-01
2 banana 2016-12-01
3 banana 2016-12-01
Run Code Online (Sandbox Code Playgroud)
等等。我需要做的是获得一个输出表,其中月份为行,item_type 为列,以及每个组合的条目数,使其看起来像
month apple banana
dec 1 2
Run Code Online (Sandbox Code Playgroud)
等等......我已经尝试date_trunc过按月分组,但这似乎是根据日期而不是月份来计算的!而且我根本不知道如何进行多重分组。
使用条件聚合:
select date_trunc('month', date) as mon,
sum((item_type = apple)::int) as apple,
sum((item_type = banana)::int) as banana
from t
group by mon
order by mon;
Run Code Online (Sandbox Code Playgroud)