当前位置: 代码迷 >> SQL >> 那些年小弟我写过的最长sql语句
  详细解决方案

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

热度:61   发布时间:2016-05-05 11:31:11.0
那些年我写过的最长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:那些年我写过的存储过程与计划任务

? ? ? ? 2:如何创建数据库链接DBLINK

? ? ? ? 3:统计分析-存储过程

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

?

  相关解决方案