• sql分组最大值相关


    房产表tf_estate_card,利润中心组profit_group_code,资产号main_assets_number,原值original_value

    查出每个利润中心组的最大原值及其资产号

    partition by方式:

    select t.main_assets_number, t.profit_group_code, t.original_value
      from tf_estate_card t,
           (select distinct t.profit_group_code,
                            max(t.original_value) over(partition by t.profit_group_code) as max_original_value
              from tf_estate_card t) tmp
     where t.profit_group_code=tmp.profit_group_code and t.original_value=tmp.max_original_value ;

    group by 方式:

    select t.main_assets_number, t.profit_group_code, t.original_value
      from tf_estate_card t,
           (select distinct t.profit_group_code,
                            max(t.original_value) as max_original_value
              from tf_estate_card t group by t.profit_group_code) tmp
     where t.profit_group_code=tmp.profit_group_code and t.original_value=tmp.max_original_value

    rank()/dense_rank() over(partition by e.deptno order by e.sal desc)方式:

    select tmp.main_assets_number, tmp.profit_group_code, tmp.original_value
      from (select t.main_assets_number,
                   t.profit_group_code,
                   t.original_value,
                   rank() over(partition by t.profit_group_code order by t.original_value desc) rank
              from tf_estate_card t) tmp
     where tmp.rank=1

       over:  在什么条件之上。
    partition by e.deptno:  按部门编号划分(分区)。
    order by e.sal desc:  按工资从高到低排序(使用rank()/dense_rank() 时,必须要带order by否则非法)
    rank()/dense_rank():  分级,rank():  跳跃排序,如果有两个第一级时,接下来就是第三级;dense_rank():  连续排序,如果有两个第一级时,接下来仍然是第二级。

  • 相关阅读:
    shell script数组使用函数输出
    Yii2文件上传
    ubuntu 安装遇到黑屏
    使用函数
    ionCube 安装
    记录LNMP环境彻底删除绑定域名及网站文件夹/文件的过程
    lnmp环境 开启pathinfo
    国外知名设计教程网址收集
    26个国外在线教育网站
    前端学习网站汇总
  • 原文地址:https://www.cnblogs.com/hongfu/p/5235343.html
Copyright © 2020-2023  润新知