`
郑云飞
  • 浏览: 797400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

那些年我写过的最长sql语句

 
阅读更多

前言

   那些年我写过的最长sql语句,在此写成博客,以此备份,便于后续工作参考

目录

      1.开通用户数

      2.开通用户数明细

      3.注册用户数

      4.注册用户数明细

      5.相似博客推荐

   1.开通用户数

SELECT W.REGION_NAME AREANAME,
       A.PROVINCE_NO areaNo,
       SUBSTR(A.PROVINCE_NO,0,2) cityNO,
       NVL(A.COUNT, 0) BUSI_HISSUM,
       NVL(B.COUNT, 0) BUSI_TOD,
       NVL(C.COUNT, 0) BUSI_YES,
       D.HISMAX BUSI_HISMAX,
       E.HISAVG BUSI_HISAVG
  FROM (SELECT T.PROVINCE_NO, COUNT(T.PROVINCE_NO) COUNT
          FROM W_BUSI_USER_BIND T
         WHERE T.SERVICE_TYPE = '01'
           AND T.ORGAN_CODE IS NOT NULL
           AND T.PROVINCE_NO IS NOT NULL
           AND T.BIND_TIME IS NOT NULL
         GROUP BY T.PROVINCE_NO) A,
       
       (SELECT T.PROVINCE_NO, COUNT(T.USER_NO) COUNT
          FROM W_BUSI_USER_BIND T
         WHERE T.SERVICE_TYPE = '01'
           AND T.ORGAN_CODE IS NOT NULL
           AND T.BIND_TIME IS NOT NULL
           AND T.PROVINCE_NO IS NOT NULL
           AND TO_CHAR(T.BIND_TIME, 'YYYY-MM-DD') =
               TO_CHAR(SYSDATE, 'YYYY-MM-DD')
         GROUP BY T.PROVINCE_NO) B,
       
       (SELECT T.PROVINCE_NO, COUNT(T.USER_NO) COUNT
          FROM W_BUSI_USER_BIND T
         WHERE T.SERVICE_TYPE = '01'
           AND T.ORGAN_CODE IS NOT NULL
           AND T.BIND_TIME IS NOT NULL
           AND T.PROVINCE_NO IS NOT NULL
           AND TO_CHAR(T.BIND_TIME, 'YYYY-MM-DD') =
               TO_CHAR(SYSDATE - 1, 'YYYY-MM-DD')
         GROUP BY T.PROVINCE_NO) C, 
       
       (SELECT A.PROVINCE_NO, MAX(A.USER_NO) HISMAX
          FROM (SELECT T.PROVINCE_NO,
                       COUNT(T.USER_NO) USER_NO,
                       TO_CHAR(T.BIND_TIME, 'YYYY-MM-DD')
                  FROM W_BUSI_USER_BIND T
                 WHERE T.SERVICE_TYPE = '01'
                   AND T.ORGAN_CODE IS NOT NULL
                   AND T.BIND_TIME IS NOT NULL
                   AND T.PROVINCE_NO IS NOT NULL
                 GROUP BY T.PROVINCE_NO, TO_CHAR(T.BIND_TIME, 'YYYY-MM-DD')) A
         GROUP BY A.PROVINCE_NO) D, 
       
       (SELECT A.PROVINCE_NO, FLOOR(AVG(A.USER_NO)) HISAVG
          FROM (SELECT T.PROVINCE_NO,
                       COUNT(T.USER_NO) USER_NO,
                       TO_CHAR(T.BIND_TIME, 'YYYY-MM-DD')
                  FROM W_BUSI_USER_BIND T
                 WHERE T.SERVICE_TYPE = '01'
                   AND T.ORGAN_CODE IS NOT NULL
                   AND T.BIND_TIME IS NOT NULL
                   AND T.PROVINCE_NO IS NOT NULL
                 GROUP BY T.PROVINCE_NO, TO_CHAR(T.BIND_TIME, 'YYYY-MM-DD')) A
         GROUP BY A.PROVINCE_NO) E, 
       W_SYS_REGION W
 WHERE W.REGION_TYPE = '02'
   AND W.ISACTIVE = '1'
   AND A.PROVINCE_NO = W.REGION_CODE(+)
   AND A.PROVINCE_NO = B.PROVINCE_NO(+)
   AND A.PROVINCE_NO = C.PROVINCE_NO(+)
   AND A.PROVINCE_NO = D.PROVINCE_NO(+)
   AND A.PROVINCE_NO = E.PROVINCE_NO(+)
 ORDER BY W.REGION_CODE
 

   2.开通用户数明细查询

    

	SELECT 
	   a.area_no areaNo,
       a.count busi_hisSum,
       NVL(b.count, 0) busi_tod,
       NVL(c.count, 0) busi_yes,
       d.count busi_hisMax,
       e.count busi_hisAvg
  from (select area_no, count(*) count
          from w_sync_organ_areas a, w_busi_user_bind b
         where a.org_no = b.organ_code
           and exists (select 1
                  from p_code p
                 where code_type = '60004200'
                   and valid_flag = '1'
                   and a.area_no = p.value)
         group by area_no) A,
       
       (select area_no, count(0) count
          from w_sync_organ_areas a, w_busi_user_bind b
         where a.org_no = b.organ_code
              
           and to_char(b.bind_time, 'YYYY-MM-DD') =
               to_char(SYSDATE, 'YYYY-MM-DD')
           and exists (select 1
                  from p_code p
                 where code_type = '60004200'
                   and valid_flag = '1'
                   and a.area_no = p.value)
         group by area_no) B,
       
       (select area_no area_no, count(*) count
          from w_sync_organ_areas a, w_busi_user_bind b
         where a.org_no = b.organ_code
              
           and to_char(b.bind_time, 'YYYY-MM-DD') =
               to_char(SYSDATE - 1, 'YYYY-MM-DD')
           and exists (select 1
                  from p_code p
                 where code_type = '60004200'
                   and valid_flag = '1'
                   and a.area_no = p.value)
         group by area_no) C,
       
       (select s.area_no, Max(s.count) count
          from (select area_no area_no,
                       TO_CHAR(b.bind_time, 'YYYY-MM-DD'),
                       count(*) count
                  from w_sync_organ_areas a, w_busi_user_bind b
                 where a.org_no = b.organ_code
                   and exists (select 1
                          from p_code p
                         where code_type = '60004200'
                           and valid_flag = '1'
                           and a.area_no = p.value)
                 group by area_no, to_char(b.bind_time, 'YYYY-MM-DD')) s
         group by s.area_no) D,
       
       (select s.areaNo area_no, floor(AVG(s.count)) count
          from (select area_no areaNo,
                       to_char(b.bind_time, 'YYYY-MM-DD'),
                       count(*) count
                  from w_sync_organ_areas a, w_busi_user_bind b
                 where a.org_no = b.organ_code
                   and exists (select 1
                          from p_code p
                         where code_type = '60004200'
                           and valid_flag = '1'
                           and a.area_no = p.value)
                 group by area_no, to_char(b.bind_time, 'YYYY-MM-DD')) s
         group by s.areaNo) e
 where 
 		a.area_no = b.area_no(+)
   and 
   		a.area_no = c.area_no(+)
   and 
   		a.area_no = d.area_no(+)
   and 
   		a.area_no = e.area_no(+)
  and 
  		a.cityNo is not null
 order by busi_hisSum DESC

 

 

    3.注册用户数

   SELECT A.AREA_NO,
   	 	SUBSTR(a.area_no,0,2) cityNo,
       A.NAME AREANAME,
       NVL(A.CT, 0) HISSUM,
       NVL(B.CT, 0) TOD,
       NVL(C.CT, 0) YES,
       NVL(D.CT, 0) HISAVG,
       NVL(E.CT, 0) HISMAX
  FROM (SELECT TMP.NAME, A.AREA_NO, A.CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.AREA_NO, COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.CITY_NO IS NOT NULL
                 GROUP BY WU.AREA_NO) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.AREA_NO) A,
       (SELECT TMP.NAME, A.AREA_NO, A.CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.AREA_NO, COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.CITY_NO IS NOT NULL
                   AND TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD') =
                       TO_CHAR(SYSDATE, 'YYYY-MM-DD')
                 GROUP BY WU.AREA_NO) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.AREA_NO) B, 
       (SELECT TMP.NAME, A.AREA_NO, A.CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.AREA_NO, COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.CITY_NO IS NOT NULL
                   AND TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD') =
                       TO_CHAR(SYSDATE - 1, 'YYYY-MM-DD')
                 GROUP BY WU.AREA_NO) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.AREA_NO) C, 
       (SELECT TMP.NAME, A.AREA_NO, MAX(A.CT) CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.AREA_NO,
                       TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD') REG_DATE,
                       COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.CITY_NO IS NOT NULL
                 GROUP BY WU.AREA_NO, TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD')) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.AREA_NO
         GROUP BY TMP.NAME, A.AREA_NO) D,
       (SELECT TMP.NAME, A.AREA_NO, FLOOR(AVG(A.CT)) CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.AREA_NO,
                       TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD') REG_DATE,
                       COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.CITY_NO IS NOT NULL
                 GROUP BY WU.AREA_NO, TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD')) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.AREA_NO
         GROUP BY TMP.NAME, A.AREA_NO) E 
 WHERE A.AREA_NO = B.AREA_NO(+)
   AND A.AREA_NO = C.AREA_NO(+)
   AND A.AREA_NO = D.AREA_NO(+)
   AND A.AREA_NO = E.AREA_NO(+)
 ORDER BY A.AREA_NO

   4.注册用户数明细

SELECT A.CITY_NO area_no,
       A.NAME AREANAME,
       SUBSTR(a.city_no,0,2) cityNo,
       NVL(A.CT, 0) HISSUM,
       NVL(B.CT, 0) TOD,
       NVL(C.CT, 0) YES,
       NVL(D.CT, 0) HISAVG,
       NVL(E.CT, 0) HISMAX
  FROM (SELECT TMP.NAME, A.CITY_NO, A.CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.CITY_NO, COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.AREA_NO = #areaNo#
                   AND WU.CITY_NO IS NOT NULL
                 GROUP BY WU.CITY_NO) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.CITY_NO) A,
       (SELECT TMP.NAME, A.CITY_NO, A.CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.CITY_NO, COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.AREA_NO = #areaNo#
                   AND WU.CITY_NO IS NOT NULL
                   AND TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD') =
                       TO_CHAR(SYSDATE, 'YYYY-MM-DD')
                 GROUP BY WU.CITY_NO) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.CITY_NO) B,
       (SELECT TMP.NAME, A.CITY_NO, A.CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.CITY_NO, COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.AREA_NO = #areaNo#
                   AND WU.CITY_NO IS NOT NULL
                   AND TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD') =
                       TO_CHAR(SYSDATE - 1, 'YYYY-MM-DD')
                 GROUP BY WU.CITY_NO) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.CITY_NO) C, 
       
       (SELECT TMP.NAME, A.CITY_NO, MAX(A.CT) CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.CITY_NO,
                       TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD'),
                       COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.AREA_NO = #areaNo#
                   AND WU.CITY_NO IS NOT NULL
                 GROUP BY WU.CITY_NO, TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD')) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.CITY_NO
         GROUP BY TMP.NAME, A.CITY_NO) D,
       
       (SELECT TMP.NAME, A.CITY_NO, FLOOR(AVG(A.CT)) CT
          FROM CSWEB_GLOBAL.P_CODE TMP,
               (SELECT WU.CITY_NO,
                       TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD'),
                       COUNT(WU.LOGIN_NAME) CT
                  FROM W_USERS WU
                 WHERE WU.AREA_NO = #areaNo#
                   AND WU.CITY_NO IS NOT NULL
                 GROUP BY WU.CITY_NO, TO_CHAR(WU.REG_DATE, 'YYYY-MM-DD')) A
         WHERE TMP.CODE_TYPE = '60004200'
           AND TMP.VALUE = A.CITY_NO
         GROUP BY TMP.NAME, A.CITY_NO) E
 WHERE A.CITY_NO = B.CITY_NO(+)
   AND A.CITY_NO = C.CITY_NO(+)
   AND A.CITY_NO = D.CITY_NO(+)
   AND A.CITY_NO = E.CITY_NO(+)
 ORDER BY A.CITY_NO
   

   5.相似博客推荐

        1:那些年我写过的存储过程与计划任务

分享到:
评论

相关推荐

    oracle查看执行最慢与查询次数最多的sql语句

    主要给大家介绍了oracle查看执行最慢与查询次数最多的sql语句,文中给出完整的示例代码,相信对大家的学习或者工作具有一定的参考价值,有需要的朋友们下面来一起看看吧。

    一些简单的SQL语句

    一些简单的SQL语句,希望能帮助你,这些都是最长用到的。

    在SQLServer上查看SQL语句的执行时间的方法

    查看SQL语句在SQL Server上的执行时间,方便大家监控语句的性能。写出更好的代码。

    实现成语接龙的sql语句和表结构.docx

    此sql是本人亲自实现的,并非拿自别的地方,保证可以实现成语接龙,不像有些骗分的资源里面一堆没用的insert数据,骗了我12分醉了。 下面是示例: 说长说短 短兵相接 接二连三 等等.... 数据库里有能接上的数据最多...

    Postgres8.3.3增强版(添加SQL执行信息统计功能)

    ", 所有SQL语句的执行信息便会被写到一个数据文件中,该数据文件位于子目录sql_dump下面。 假定你的数据库位于目录/home/postgres/database 下,那么你可以在/home/postgres/database/sql_dump下找到该数据文件。 ...

    SQL.xmind 【SQL的执行顺序】【SQL常用语句】常考要点

    【基础知识】 三大范式,为什么要有三大范式,建数据库时一定要遵循吗?(反范式) 【必备题型】 1 列转行 2 连续性问题 ...4 我关注你,你也关注我 第一个sql题输出一个领导所有的下级 最长连续登录天数

    SQL Server的基本功能性语句介绍

    1 注释符注释是指程序代码中不执行的文本字符串,是对程序的...2 输出语句(PRINT)输出语句PRINT语句用于把消息传递到客户端应用程序,通常是在用户屏幕上显示,消息字符串最长可达8000个字符,超过8000个的任何字符均

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    5.4.3 用T-SQL解决最长上升子序列的长度问题 5.5 总结 第6章 子查询、表表达式和排名函数 6.1 子查询 6.1.1 独立子查询 6.1.2 相关子查询 6.1.3 行为不当的子查询 6.1.4 不常用的谓词 6.2 表表达式(Table ...

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    5.4.3 用T-SQL解决最长上升子序列的长度问题227 5.5 总结229 第6章 子查询、表表达式和排名函数231 6.1 子查询232 6.1.1 独立子查询232 6.1.2 相关子查询235 6.1.3 行为不当的子查询244 6.1.4 不常用的谓词...

    SQL-server2000数据库管理系统A.docx

    A、create table B、create C、create database D、drop 5、使用Transact-SQL语句创建数据库时,( )关键字是用于指定数据库的事务日志文件。 A、log on B、primary C、filename D、filegrowth 6、在SQL中,create...

    SqlToolBox 1.8.2

    提供Redo/Undo,Shift整体退格进格,大小写转化,将Sql语句用StringBuilder包容以及将Sql语句中关键字大写表示等常用文字编辑功能。这些都能帮助程序员在程序中书写Sql语句。 8. 能保存和记忆数据库信息,以便下次...

    仅使用到了基础的sql语句,基本的增删查改 使用mysql实现,大二数据库课设 资源内容包含源代码、实验报告、数据库数据

    使用的开发软件是idea2019,Mysql。 基本实现了题目的所有要求: 某大学图书馆希望建立一个数据库系统来管理图书借阅情况。...图书借阅有一定期限,最长为三个月,超期需要缴纳罚款。图书需要分类管理,方便用户借阅。

    SQL数据库管理系统-A.docx

    A、create table B、create C、create database D、drop 5、使用Transact-SQL语句创建数据库时,( )关键字是用于指定数据库的事务日志文件。 A、log on B、primary C、filename D、filegrowth 6、在SQL中,create...

    数据库课程设计--图书管理系统.doc

    分析关系模式中的依赖关系,对关系模式规范化处理 4、完成系统物理结构设计 为每个关系分配存储长度,建立数据库的索引和视图,定义关系中的主码和外码,写 出关系创建和查询的SQL语句。 5、编码 选择你自己熟悉的...

    DMLOG8.13.zip

    DMLOG工具是一款简单易用的达梦数据库SQL日志分析工具,旨在帮助运维人员统计日志中最长执行时间和执行最高频次的SQL语句,直观的反应SQL执行情况,对于SQL的优化工作提供了极大的便利。目前版本支持SQL分布热点图等...

    Oracle数据库使用及命名规则的详解

    本注释说明主要用于PL/SQL程序及其它SQL文件,其它可作参考;  2. SQLPLUS接受的注释有三种:  ―― 这儿是注释  /* 这儿是注释 */  REM 这儿是注释  3. 开始注释,类似JAVAK中的开始注释,主要...

    oracle_PLSQL_语法详细手册

    表是Oracle中最重要的数据库对象,表存储一些相似的数据集合,这些数据描述成若干列或字段.create table 语句的基本形式用来在数据库中创建容纳数据行的表.create table 语句的简单形式接收表名,列名,列数据类型和大小...

    db2-技术经验总结

    1.72. 监控运行最长的SQL语句 99 1.73. 给表增加generated always时需要注意(原) 99 1.74. 给表增加索引的时候,可以增加collect detailed statistics参数来避免对表索引重新runstats(原) 100 1.75. DB2 LOAD命令所...

Global site tag (gtag.js) - Google Analytics