oracle 存储过程 示例

前端之家收集整理的这篇文章主要介绍了oracle 存储过程 示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

oracle 存储过程 示例

CreationTime--2018年9月4日09点49分

Author:Marydon

1.情景展示

  对VIRTUAL_QRCODELOG表的静态二维码,动态二维码二维码总量按时间进行分组统计

  表结构展示

 

分享图片

  存储过程入参展示

分享图片

2.sql分析

 要想完成这个sql需要将行转成列

  第一步:

分享图片

  第二步:借助UNION ALL

--按日期统计动态二维码
SELECT TO_CHAR(QR_CREATETIME,‘yyyy-MM-dd‘) TIME,0 STATIC_CODE,COUNT(1) DYNAMIC_CODE
  FROM VIRTUAL_QRCODELOG
 WHERE QR_CODE_TYPE = 0
 GROUP BY TO_CHAR(QR_CREATETIME,‘yyyy-MM-dd‘)
UNION ALL
--按日期统计静态二维码
SELECT TO_CHAR(QR_CREATETIME,COUNT(1) STATIC_CODE,0 DYNAMIC_CODE
  FROM VIRTUAL_QRCODELOG
 WHERE QR_CODE_TYPE = 1
 GROUP BY TO_CHAR(QR_CREATETIME,‘yyyy-MM-dd‘)
 ORDER BY TIME

分享图片

  

  第三步:按日期进行分组求和

SELECT TIME,--时间
       SUM(STATIC_CODE) STATIC_CODE,--静态二维码
       SUM(DYNAMIC_CODE) DYNAMIC_CODE,--动态二维码
       SUM(STATIC_CODE) + SUM(DYNAMIC_CODE) SCAN_CODE --扫码
  FROM (
        --按日期统计动态二维码
        SELECT TO_CHAR(QR_CREATETIME,COUNT(1) DYNAMIC_CODE
          FROM VIRTUAL_QRCODELOG
         WHERE QR_CODE_TYPE = 0
         GROUP BY TO_CHAR(QR_CREATETIME,‘yyyy-MM-dd‘)
        UNION ALL
        --按日期统计静态二维码
        SELECT TO_CHAR(QR_CREATETIME,0 DYNAMIC_CODE
          FROM VIRTUAL_QRCODELOG
         WHERE QR_CODE_TYPE = 1
         GROUP BY TO_CHAR(QR_CREATETIME,‘yyyy-MM-dd‘))
 GROUP BY TIME
 ORDER BY TIME;

分享图片

  

 

3.效果展示

 

 

 相关推荐:

猜你在找的Oracle相关文章