• mysql 行转列


    SELECT NAME ,SUM( CASE SUBSTRING(mon, 6)  WHEN '01'  THEN sa ELSE 0 END ) AS '01月',
    
    SUM( CASE SUBSTRING(mon, 6)  WHEN '02'  THEN sa ELSE 0 END ) AS '02月',
    SUM( CASE SUBSTRING(mon, 6)  WHEN '03'  THEN sa ELSE 0 END ) AS '03月',
    mon FROM sale
    
    GROUP BY mon
    SELECT 
      ROUND((b.num / a.num) * 100, 2) || '%' AS tpnum,
      nvl (b.num, 0) AS tnum,
      nvl (a.num, 0) AS num,
      CAST(c.time2 AS VARCHAR (10)) AS mon 
    FROM
      (SELECT 
        COUNT(t.did) num,
        to_char (t.ts, 'yyyy-MM') AS d 
      FROM
        RCV_TB t 
      WHERE to_char (t.ts, 'yyyy') = '2019' 
        AND t.UNITID = '1001' 
      GROUP BY to_char (t.ts, 'yyyy-MM')) a 
      LEFT JOIN 
        (SELECT 
          * 
        FROM
          (SELECT 
            COUNT(t.did) num,
            to_char (t.ts, 'yyyy-MM') AS d 
          FROM
            RCV_TB t 
          WHERE t.isnet = '1' 
          GROUP BY to_char (t.ts, 'yyyy-MM'))) b 
        ON a.d = b.d 
      RIGHT JOIN 
        (SELECT 
          '01' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '02' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '03' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '04' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '05' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '06' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '07' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '08' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '09' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '10' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '11' AS time2 
        FROM
          DUAL 
        UNION
        ALL 
        SELECT 
          '12' AS time2 
        FROM
          DUAL) c 
        ON SUBSTR(a.d, 6, 2) = c.time2 
    ORDER BY c.time2 
  • 相关阅读:
    Vagrant安装virtualbox
    SQLSERVER排查CPU占用高的情况
    删除重复记录,只留一条
    ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)、……
    手机和PC端的录屏软件
    2017年初面试总结
    Python面向对象
    Python字体颜色
    Python第二模块总结
    Fiddler使用教程(转)
  • 原文地址:https://www.cnblogs.com/jentary/p/11534006.html
Copyright © 2020-2023  润新知