vertica sql实现行转列

Posted 卡卡西村长的小灶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vertica sql实现行转列相关的知识,希望对你有一定的参考价值。

CREATE TABLE t1 (
  id int,
  name varchar(10)
);

INSERT INTO t1
SELECT 1 AS id, greg AS name
UNION ALL
SELECT 2, paul
UNION ALL
SELECT 3, greg
UNION ALL
SELECT 4, greg
UNION ALL
SELECT 5, paul;

COMMIT;

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

Result

 name |  id
------+-------
 greg | 1,3,4
 paul | 2,5

以上是关于vertica sql实现行转列的主要内容,如果未能解决你的问题,请参考以下文章

ORAClE sql如何实现行转列?

SQLSERVER有张表,需要每晚自动实现行转列。

SQL sql语句实现行转列的3种方法

SQL语句实现行转列

sql语句行转列 怎么转啊

SQL Server 动态行转列(参数化表名分组列行转列字段字段值)