SQL内置函数之排名函数
主要有三个排名函数
row_number
rank()
dense rank()
row_number 对查询结果按某列的值进行排序
具体语法 row_number() over (order by 列名 asc|desc)
例题:按生日从小到大排序,显示学生的姓名,出生日期与排名
select row_number() over (order by birthday desc) as 排名,sname as 学生姓名,birthday as 出生日期
from t_student
该排名函数存在的问题:相同的出生日期有着不同的排名
rank() 列值相同,排名也相同
具体语法 rank() over (order by 列名 asc|desc)
例题:按生日从小到大排序,显示学生的姓名,出生日期与排名
select rank() over (order by birthday desc) as 排名,sname as 学生姓名,birthday as 出生日期
from t_student
该排名函数存在的问题:排名不连续
dense_rank() 列值相同,排名也相同,且输出的排名连续
具体语法 dense_rank() over (order by 列名 asc|desc)
例题:按生日从小到大排序,显示学生的姓名,出生日期与排名
select dense_rank() over (order by birthday desc) as 排名,sname as 学生姓名,birthday as 出生日期
from t_student