将事务数据转换为二进制形式表

时间:2015-04-02 07:00:21

标签: sql postgresql pivot

我每天都有一个交易表(每天可以有1对多的交易)。现在我想以这样一种方式对其进行转换:每个客户使用一系列0获得单个记录(如果当天的事务表中没有记录)和1(如果有记录的话)那天)。

如何在SQL(ANSI SQL或Postgres)中实现这一目标?

例如:

转换此交易表:

Cust   Date  
123    2/3/2015  
123    4/3/2015  
456    1/3/2015  

进入下表:

Cust   1/3/2015   2/3/2015   3/3/2015   4/3/2015  
123       0          1          0          1  
456       1          0          0          0  

鉴于建议使用CROSSTAB我已经提出了这个SQL:

SELECT *
FROM CROSSTAB12 (
   'SELECT CALLING_ISDN AS A_PARTY, DATE(CALL_STA_TIME), 1 AS VALUE
   FROM CDRVMS_ADMIN.AW_CDRICC_SAMPLE
   ORDER BY 1,2');

产生以下错误消息(我在Netezza机器上工作):

  

ERROR(42000)发现"("(在char 26)期待关键字

我使用此文档:http://www.postgresql.org/docs/current/interactive/tablefunc.html

0 个答案:

没有答案