将行数据传输到oracle数据库的列中

时间:2017-06-13 18:46:13

标签: sql oracle

我有以下数据(表1),我想将它们作为我的第二个表(表2)在oracle数据库上传输,请帮助我。

表(1)

PRODUCT  COUNT         DATE
Pepsi    379         30/05/2017
Cola     220         30/05/2017
Pepsi    351         31/05/2017
Cola     123         31/05/2017

表(2)

DATE            Pepsi     Cola   
30/05/2017       379       220
31/05/2017       351       123

2 个答案:

答案 0 :(得分:-1)

Old Style pivot:

select date
, max(decode(product, 'Pepsi', count, null) as Pepsi
, max(decode(product, 'Cola', count, null) as Cola
from <table 1>
group by date
;

11g有一个类似的枢轴命令(你可以查一查)。

答案 1 :(得分:-1)

您可以使用Pivot

SELECT * FROM 
  (SELECT DATE, PRODUCT, COUNT FROM PRODUCT)
  PIVOT
  (
    AVG(COUNT)
    FOR PRODUCT IN ('Pepsi' AS Pepsi, 'Cola' AS Cola)
  )

这适合我。