zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    LINUX下用PHPIZE安装PHP GD扩展
    LNMP下使用Phabricator(一)
    关于学习
    PHP EXCEL相关
    curl_setopt 注意
    JS代码运行延迟
    ajax跨域
    Bootstrap-下拉菜单
    Bootstrap-基本的按钮组
    Bootstrap-基本的输入框组
  • 原文地址:https://www.cnblogs.com/lavezhang/p/12290537.html
Copyright © 2011-2022 走看看