前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql功底展示

sql功底展示

作者头像
用户5166330
发布2019-04-16 16:39:49
4630
发布2019-04-16 16:39:49
举报
文章被收录于专栏:帅哥哥写代码帅哥哥写代码

功能性sql

代码语言:javascript
复制
/**ziping**/
SELECT
  a. NAME,
  a.REGION_CITY_NAME,
  a.REGION_DISTRICT_NAME,
  a.LAST_MODIFIED_DATE_,
  b.LAST_MODIFIED_DATE_,
  c.LAST_MODIFIED_DATE_,
  d.LAST_MODIFIED_DATE_
FROM
  (
      SELECT
          selff. NAME,
          selff.REGION_CITY_NAME,
          selff.REGION_DISTRICT_NAME,
          selff.EVALUATION_ORG_,
          selff.LAST_MODIFIED_BY_,
          selff.LAST_MODIFIED_DATE_,
          selff.CREATED_DATE_
      FROM
          (
              SELECT
                  es. NAME,
                  es.REGION_CITY_NAME,
                  es.REGION_DISTRICT_NAME,
                  es.EVALUATION_ORG_,
                  selfee.LAST_MODIFIED_BY_,
                  selfee.LAST_MODIFIED_DATE_,
                  selfee.CREATED_DATE_,
                  row_number () OVER (
                      PARTITION BY es. NAME
                      ORDER BY
                          selfee.LAST_MODIFIED_DATE_ DESC
                  ) AS nums
              FROM
                  ENTERPRISE_SCORE es
              LEFT JOIN ECE_NORMAL_CREDIT_EVALUATION_ ence ON es.NORMAL_ID = ence.id
              LEFT JOIN ece_self_normal_relation_ EsNR ON EsNR.ECE_NORMAL_CREDIT_EVALUATION__ID = ES.ID
              LEFT JOIN ece_evaluation_ selfee ON selfee.id = EsNR.SELF_NORMAL_EVALUATES_ID
              WHERE
                  es.EVALUATION_ORG_ = 'ST'
          ) selff
      WHERE
          nums = 1
  ) a
LEFT JOIN /** quxian**/
(
  SELECT
      *
  FROM
      (
          SELECT
              es. NAME,
              es.REGION_CITY_NAME,
              es.REGION_DISTRICT_NAME,
              es.EVALUATION_ORG_,
              countryee.LAST_MODIFIED_BY_,
              countryee.LAST_MODIFIED_DATE_,
              row_number () OVER (
                  PARTITION BY es. NAME
                  ORDER BY
                      countryee.LAST_MODIFIED_DATE_ DESC
              ) AS nums
          FROM
              ENTERPRISE_SCORE es
          LEFT JOIN ECE_NORMAL_CREDIT_EVALUATION_ ence ON es.NORMAL_ID = ence.id
          LEFT JOIN ECE_COUNTY_NORMAL_RELATION_ ECNR ON ECNR.ECE_NORMAL_CREDIT_EVALUATION__ID = ES.ID
          LEFT JOIN ece_evaluation_ countryee ON countryee.id = ecnr.COUNTY_NORMAL_EVALUATES_ID
          WHERE
              es.EVALUATION_ORG_ = 'ST'
      ) country
  WHERE
      nums = 1
) b ON a. NAME = b. NAME
LEFT JOIN /**shizou**/
(
  SELECT
      *
  FROM
      (
          SELECT
              es. NAME,
              es.REGION_CITY_NAME,
              es.REGION_DISTRICT_NAME,
              es.EVALUATION_ORG_,
              cityee.LAST_MODIFIED_BY_,
              cityee.LAST_MODIFIED_DATE_,
              row_number () OVER (
                  PARTITION BY es. NAME
                  ORDER BY
                      cityee.LAST_MODIFIED_DATE_ DESC
              ) AS nums
          FROM
              ENTERPRISE_SCORE es
          LEFT JOIN ECE_NORMAL_CREDIT_EVALUATION_ ence ON es.NORMAL_ID = ence.id
          LEFT JOIN ECE_CITY_NORMAL_RELATION_ ECNR ON ECNR.ECE_NORMAL_CREDIT_EVALUATION__ID = ES.ID
          LEFT JOIN ece_evaluation_ cityee ON cityee.id = ecnr.CITY_NORMAL_EVALUATES_ID
          WHERE
              es.EVALUATION_ORG_ = 'ST'
      ) city
  WHERE
      nums = 1
) c ON a. NAME = c. NAME
LEFT JOIN /**st**/
(
  SELECT
      *
  FROM
      (
          SELECT
              es. NAME,
              es.REGION_CITY_NAME,
              es.REGION_DISTRICT_NAME,
              es.EVALUATION_ORG_,
              stee.LAST_MODIFIED_BY_,
              stee.LAST_MODIFIED_DATE_,
              row_number () OVER (
                  PARTITION BY es. NAME
                  ORDER BY
                      stee.LAST_MODIFIED_DATE_ DESC
              ) AS nums
          FROM
              ENTERPRISE_SCORE es
          LEFT JOIN ECE_NORMAL_CREDIT_EVALUATION_ ence ON es.NORMAL_ID = ence.id
          LEFT JOIN ECE_PROVINCE_NORMAL_RELATION_ epnr ON epnr.ECE_NORMAL_CREDIT_EVALUATION__ID = ES.ID
          LEFT JOIN ece_evaluation_ stee ON stee.id = epnr.PROVINCE_NORMAL_EVALUATES_ID
          WHERE
              es.EVALUATION_ORG_ = 'ST'
      ) city
  WHERE
      nums = 1
) d ON a. NAME = d. NAME

说明

sql这么长,就是装个*** 数据库是DB2 这里面其实就一个功能点 group by分组时,想根据某一列分组,但是又想查询其他列。 我这里的实现方法采用了row_number 函数方法

row_number 函数用法

row_number () OVER (PARTITION BY col1 ORDER BY col2) col1 列名一,分组的列(非必须) col2列名二,排序的列(非必须) 这样就会生成新的一列,按col1 进行分组,按col2进行排序。把结果看成新表,where条件新列,可以实现筛选。

其他方法

mysql可以关闭group by校验。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能性sql
  • 说明
  • row_number 函数用法
  • 其他方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档