sql 查所有货物月份的销售量

【问题】

有一个表里面有各种货物每天的销售量.
table
       
时间                                          销量
2014-01
01 15:20:25                        3
2014-02-21 16:11:23                         2
2015-01-05 11:14:21                         1
2015-02-11 15:21:11                         2
希望得到的数据格式如下:
月份      2014年销量   2015年销量
1              3                           1
2              2                          2
3              0                          0
4              0                          0
5              0                          0

【回答】

上述问题,如果数据齐全,按年,月分组统计销量后,通过pivot行列互换即可,但如果数据不全,比如月份不全,比如年度是动态的,那么这个数据用sql整理起来就复杂了,下面具体来看用SPL是如何做的:


A

B

1

$select year(时间) ,month(时间) ,sum(销量) 销量 from tb group by ,

2

=A1.id()

3

=A1.align@a(12,)

4

=create(月份,${A2.(string(~)+"年销量").concat@c()})

5

for A3

>A4.record(#A5|A2.(ifn(A5.select@1(==A2.~).销量,0)))

A1:通过sql按照年,月分组统计销量

A2:取年度的唯一值

A3:将A1按照12个月对齐

A4:按月份,2014年销量、2015年销量创建空序表

A5-B5:对A3循环,将每个月份,各年度的销量依次填入序表A4