Cross Pivot Table PL SQL

时间:2013-05-03 08:03:42

标签: oracle plsql pivot

你能帮我构建查询吗? 我必须在产品之间创建一个交叉表。我想我最好能告诉你。

这是源表(客户和产品表的笛卡尔积);

YEAR     MONTH     PRODUCT     CUSTOMER     SOLD
2013         1           A            1        1
2013         1           A            2        0
2013         1           A            3        1
2013         1           A            4        0
2013         1           B            1        0
2013         1           B            2        1
2013         1           B            3        1
2013         1           B            4        1
2013         2           A            1        1
2013         2           A            2        0
2013         2           B            1        1

这是我要重现的最终数据透视表FOR 2013-01;

PRODDUCT      A       B
       A      2       1
       B      1       3

数字是客户数量。此表表示已购买A的客户中还有多少人购买了B.

这是表格的DDL

CREATE TABLE yourtable (year varchar2(4)
     , month number
     , product varchar2(1)
     ,customer varchar2(1)
, sold number ); 

以下是一些示例数据:

insert into yourtable values ('2013', 1, 'A', '1', 1); 
insert into yourtable values ('2013', 1, 'A', '2', 0); 
insert into yourtable values ('2013', 1, 'A', '3', 1); 
insert into yourtable values ('2013', 1, 'A', '4', 0); 
insert into yourtable values ('2013', 1, 'B', '1', 0); 
insert into yourtable values ('2013', 1, 'B', '2', 1); 
insert into yourtable values ('2013', 1, 'B', '3', 1); 
insert into yourtable values ('2013', 1, 'B', '4', 1); 
insert into yourtable values ('2013', 2, 'A', '1', 1); 
insert into yourtable values ('2013', 2, 'A', '2', 0); 

0 个答案:

没有答案