码迷,mamicode.com
首页 > 其他好文 > 详细

partition by 函数

时间:2016-11-02 20:51:25      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:blog   info   where   统计   todo   级别   order by   场景   number   

工作中用到的sql

select t."ID", t."TITLE", t."SENDUSERID", t."SENDTIME", t."URL", t."USERID", t."TODOTYPE", t."MODELNAME", t."IMPORTANCE", t."SENDUSERNAME", t."SENDUSERDEPTNAME", t.DATAID, t.OPENFLAG, t.realuserid, t.status, t.donetime from (select m."ID", m."TITLE", m."SENDUSERID", m."SENDTIME", m."URL", m."USERID", m."TODOTYPE", m."MODELNAME", m."IMPORTANCE", m."SENDUSERNAME", m."SENDUSERDEPTNAME", m.DATAID, m.OPENFLAG, m.realuserid, m.status, m.donetime , row_number() over(partition by m.DATAID,m.status,m.realuserid order by m."SENDTIME" desc) rn from ( select a."ID", a."TITLE", a."SENDUSERID", a."SENDTIME", a."URL", a."USERID", a."TODOTYPE", a."MODELNAME", a."IMPORTANCE", a."SENDUSERNAME", a."SENDUSERDEPTNAME", a.DATAID, b.OPENFLAG, b.userid as realuserid, b.status, b.donetime from TD_HORIZON_Info a, TD_HORIZON_User b where a.id = b.TODOID ) m )t where rn=1;

 

 

Parttion by 关键字是Oracle中分析性函数的一部分,它和聚合函数不同的地方在于它能够返回一个分组中的多条记录,聚合函数一般只有一条反映统计值的结果

  场景:查询出每个部门工资最低的员工编号【每个部门可能有两个最低的工资员工】

--row_number() 顺序排序 select row_number() over(partition by deptid order by salary) my_rank ,deptid,USERID,salary from tsaler; --rank() (跳跃排序,如果有两个第一级别时,接下来是第三级别) select rank() over(partition by deptid order by salary) my_rank,deptid,USERID,salary from tsaler; --dense_rank()(连续排序,如果有两个第一级别时,接下来是第二级) select dense_rank() over(partition by deptid order by salary) my_rank,deptid,USERID,salary from tsaler; -------方案3解决方案 select * from (select rank() over(partition by deptid order by salary) my_rank,deptid,USERID,salary from tsaler) where my_rank=1; select * from (select dense_rank() over(partition by deptid order by salary) my_rank,deptid,USERID,salary from tsaler) where my_rank=1;

 

partition by 函数

标签:blog   info   where   统计   todo   级别   order by   场景   number   

原文地址:http://www.cnblogs.com/zhouyanan/p/6024072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!