我有下面的brands
表,其中每个month
的销售额为total
,这是以前查询的结果:
id | date | total
-----+----------+------
123 | Apr-2012 | 100
123 | Mar-2012 | 150
123 | Jan-2012 | 500
987 | Apr-2012 | 5
987 | Mar-2012 | 0.10
987 | Feb-2012 | 8
我希望实现以下目标:
id | Apr-2012 | Mar-2012 | Feb-2012 | Jan-2012
123 | 100 | 150 | 0 | 500
987 | 5 | 0.10 | 8 | 0
如何使用date
值作为列,并能够用0个总数填充缺失的日期?
1条答案
按热度按时间eufgjt7s1#
示例的
crosstab()
查询如下所示:要填写
0
以得到的NULL
值(在注解中请求),请使用COALESCE()
:详细说明及链接:
旁白:我避免了标准SQL中的reserved word“date”作为列名(即使Postgres允许)。