aggregate function to concatenate strings in Vertica

前端 未结 3 831
礼貌的吻别
礼貌的吻别 2021-01-13 02:43

have a table in vertica: test like this:

ID     |   name
1      |    AA
2      |    AB
2      |    AC
3      |    AD
3      |    AE
3      |    AF

3条回答
  •  忘掉有多难
    2021-01-13 03:01

    SELECT id,
        MAX(DECODE(row_number, 1, a.name)) ||
        NVL(MAX(DECODE(row_number, 2, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 3, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 4, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 5, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 6, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 7, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 8, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 9, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 10, ',' || a.name)), '')||
        NVL(MAX(DECODE(row_number, 11, ',' || a.name)), '') ||
        NVL(MAX(DECODE(row_number, 12, ',' || a.name)), '') ag
    FROM
        (SELECT id, name, ROW_NUMBER() OVER(PARTITION BY name ORDER BY id) row_number FROM test) a
    GROUP BY a.id
    ORDER BY a.id;
    

提交回复
热议问题