窗口函数

浏览: 888
SQL

1、窗口函数格式:

<窗口函数> OVER ( PARTITION BY <用于分组得列> ORDER BY <用于排序的列> DESC)

2、窗口函数:

--专用窗口接口函数:

RANK:1,2,3,3,3,6,7,8

DENSE_RANK:1,2,3,3,3,4,5,6

ROW_NUMBER:1,2,3,4,5,6,7,8

NTILE:分组排名,里面的数字是几,最多排名就是几,里面的数字是4,最多的排名就是4

--聚合函数:SUM、AVG、MAX、MIN、COUNT

3、实例:

SELECT * ,  RANK() OVER (PARTITION BY 班级 ORDER BY 成绩) AS ranking FROM 班级表 

说明:

新增的ranking是在原表的基础上加入新的列,虽然直接通过group by 和order by 聚合函数也可获得同样的排名,但是聚合后的函数会生成一个新的表结构。因此在原表基础上添加新的属性,可通过窗口函数实现。

另PARTITION BY 并非必须,看自己需求

推荐 0
本文由 方枪枪 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册