SQL窗口函数

Posted 21座的胖子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL窗口函数相关的知识,希望对你有一定的参考价值。

作用

先看一下窗口函数的结构

<窗口函数> over (partition by <字段1> order by <字段2>)

partition,分组;order,排序

所以窗口函数的主要作用就是用来分组和排序

用法

<窗口函数>的位置,既可以放窗口函数,也可以用聚合函数

窗口函数:rank(),row_number,dense_rank()等
聚合函数:sum(),count(),min(),max(),avg()等

区别

rank()

SELECT *,RANK() over(PARTITION by class ORDER BY score) 排名
FROM school

结果:

dense_rank()

SELECT *,DENSE_RANK() over(PARTITION by class ORDER BY score) 排名
FROM school

结果:

row_number()

SELECT *,ROW_NUMBER() over(PARTITION by class ORDER BY score) 排名
FROM school

结果:

总结:区别在于排名的数字不同

以上是关于SQL窗口函数的主要内容,如果未能解决你的问题,请参考以下文章

SQL 窗口函数是什么?涨见识了!

SQL基础教程(第2版)第8章 SQL高级处理:8-1 窗口函数

SQL窗口函数

SQL窗口函数

SQL窗口函数

SQL窗口函数