我想按销售代表创建一个年度销售报告表,显示所有十二个月。我拥有的数据或多或少类似于此示例:
id | rep | date | price
----------------------------
1 1 2017-01-01 20
2 1 2017-01-20 44
3 2 2017-02-18 13
4 2 2017-03-08 12
5 2 2017-04-01 88
6 2 2017-09-05 67
7 3 2017-01-31 10
8 3 2017-06-01 74
我需要的结果是这样的:
Rep Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
----------------------------------------------------
1 64 0 0 0 0 0 0 0 0 0 0 0
2 0 13 12 88 0 0 0 0 67 0 0 0
3 10 0 0 0 0 74 0 0 0 0 0 0
编写此查询的最有效方法是什么?
最佳答案
一种方法:
select rep,
sum(case when extract('month' from date) = 1 then price else 0 end ) as Jan,
sum(case when extract('month' from date) = 2 then price else 0 end ) as Feb
-- another months here
from t
group by rep
关于sql - Postgres 查询代表的年度销售报告。按月分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589160/