2017-02-23 63 views
-4

如何在oracle中执行以下操作?如何在Oracle中将多行组合成单行?

输入

id units unit_description 
12 20  kWh 
12 50  kWh 
12 100 days 
15 80  kWh 

欲合并在柱2和3根据第1列到一个单列。其结果应该是像

输出:

id | unit details 
12 70 KWh , 100 days 
15 80 KWh 
+0

到目前为止你做了什么?你可以从学习小组开始。 – Nitish

回答

1

检查下面的查询。大多数情况下它应该适用于你的情况。它可能不会立即执行,根据您的要求进行修改。

 
SELECT id, 
     LISTAGG (unit || ' ' || unit_description, ', ') 
      WITHIN GROUP (ORDER BY unit, unit_description) 
    FROM ( SELECT id, unit_description, SUM (unit) AS unit 
       FROM table1 
      GROUP BY id, unit_description) 
GROUP BY id; 
+0

谢谢你,Rakesh,它工作! – NPK