[英]concat value of multiple rows into one column
来源数据:
COLA COLB COLC
1 BO AFV
1 BO AKG
1 BO UYD
2 BOS KJHSDKJ
2 BOS YWI
3 POS JHSFJH
3 POS IUXN
我想要的结果如下:
COLA COLB COLC
1 BO AFV, AKG,UYD
2 BOS KJHSDKJ,YWI
3 POS JHSFJH,IUXN
COLA,COLB是关键专栏。
这是一个递归查询,它将完成这项工作:
WITH RECURSIVE REC_VIEW (COLA, COLB, ROLL_UP, COLC)
AS
(
SELECT COLA
, COLB
, MIN(COLC) (VARCHAR(1000))
, MIN(COLC)
FROM your_table
GROUP BY 1,2
UNION ALL
SELECT B.COLA
, B.COLB
, B.ROLL_UP || ',' || A.COLC
, A.COLC
FROM your_table A
INNER JOIN REC_VIEW B
ON A.COLA = B.COLA
AND A.COLB = B.COLB
AND A.COLC > B.COLC
)
SELECT COLA, COLB, ROLL_UP as COLC
FROM REC_VIEW
QUALIFY ROW_NUMBER() OVER (PARTITION BY COLA, COLB
ORDER BY CHARACTER_LENGTH(ROLL_UP) DESC) = 1
我希望我明白如何更好地格式化答案; 我所有的“漂亮”间距都消失了。 希望这很清楚。
这是一个示例链接 。
它有一些示例数据和实际查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.