我有以下两张桌子
SELECT * FROM TABLE_ONE
UNION
SELECT * FROM TABLE_TWO
结果
ID|PRODUCTS |TOTAL_AMOUNT|
--|-----------|------------|
1|TABLE|CHAIR| 8|
1|TABLE|TV | 12|
2|CUP | 13|
2|PLATE | 14|
现在我想做一个listagg
并删除 oracle 19c 上的重复项,因此我使用以下查询
SELECT ID, listagg(DISTINCT PRODUCTS, '|') within group (order by PRODUCTS) PRODUCTS, SUM(AMOUNT) FROM (
SELECT * FROM TABLE_ONE
UNION
SELECT * FROM TABLE_TWO
) GROUP BY ID
我得到的结果是
ID|PRODUCTS |SUM(TOTAL_AMOUNT)|
--|--------------------|-----------------|
1|TABLE|CHAIR|TABLE|TV| 20|
2|CUP|PLATE | 27|
我想要的结果是
ID|PRODUCTS |SUM(TOTAL_AMOUNT)|
--|--------------------|-----------------|
1|TABLE|CHAIR|TV | 20|
2|CUP|PLATE | 27|
db <> fiddle中的测试数据虽然它是oracle18c
,但不支持我正在使用的 listagg 中的 distinctoracle 19c