【发布时间】:2015-11-17 15:24:33
【问题描述】:
我的数据如下:
MEDIA_ID | CHANNEL_NAME
EH/123A CH-1
EH/123A CH-4
EH/132A CH-5
ES/133B CH-1
ES/133B CH-2
ES/133B CH-5
我想要的是:
EH/123A | CH-1,CH-4,CH-5
ES/123B | CH-1,CH-2,CH-5
我在 Oracle 中使用这个 SQL:
SELECT DISTINCT
PR.MEDIA_ID
, LISTAGG(PR.CHANNEL_NAME, ', ') WITHIN GROUP (ORDER BY CHANNEL_NAME) AS PREM_CHAN
FROM PREM_REPORT PR
GROUP BY PR.MEDIA_ITEM, PR.CHANNEL_NAME;
我得到的是:
MEDIA_ID | CHANNEL_NAME
EH/123A CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1
EH/123A CH-4,CH-4,CH-4,CH-4,CH-4,CH-4,CH-4,CH-4,CH-4,CH-4,CH-4,CH-4
EH/132A CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5
ES/133B CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1,CH-1
ES/133B CH-2,CH-2,CH-2,CH-2,CH-2,CH-2,CH-2,CH-2,CH-2,CH-2,CH-2,CH-2
ES/133B CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5,CH-5
想法?
谢谢。 本
【问题讨论】:
-
从
group by中删除channel_name -
并删除 distinct。不需要。