|
你想输出什么?OO似乎在另外一贴已经回答了你,就是用GROUP BY不要用分析函数和PARTITION BY。
WITH tab AS
(SELECT 1 AS col1, 2 AS col2, 'Smith' AS created_by
FROM dual
UNION ALL
SELECT 1 AS col1, 2 AS col2, 'John' AS created_by
FROM dual
UNION ALL
SELECT 1 AS col1, 3 AS col2, 'Ajay' AS created_by
FROM dual
UNION ALL
SELECT 1 AS col1, 4 AS col2, 'Ram' AS created_by
FROM dual
UNION ALL
SELECT 1 AS col1, 5 AS col2, 'Jack' AS created_by
FROM dual)
SELECT listagg(col2_with_nulls, ',') within GROUP(ORDER BY col2_with_nulls)
FROM (SELECT col1,
CASE
WHEN lag(col2) over(ORDER BY col2) = col2 THEN
NULL
ELSE
col2
END AS col2_with_nulls,
created_by
FROM tab)
group by col1;
|
|