1.row_number()
將select查詢到的資料進行排序,每一條資料加乙個序號,一般用於分頁查詢
排列出的序號不同
(1)對學生成績排序
select row_number() over(order by score desc) number, * from student;
此處的number就是學生的名次
(2)獲取第二個學生的成績資訊
select * from (
select row_number() over(order by studentscore desc) number,* from student
)t where t.number=2
where t.number>=1 and t.number<=10,獲取的就是前十名學生的資訊
2.rank()
對某一欄位進行排序,存在相同值時,排序相同,下面的排序是連續的,如1,1,2
(1)對學生成績排序
select rank() over(order by score desc) number, * from student;
按班級分組:
select rank() over(partition by classid order by score desc) number, * from student;3.dense_rank()對某一欄位進行排序,存在相同值時,排序相同,下面的排序是不連續的,如1,1,3
(1)對學生成績排序
select dense_rank() over(order by score desc) number, * from student;
4.ntile()
將有序分割槽中的行分發到指定數目的組中,各個組有編號,編號從1開始,
例:select ntile(1) over(order by score desc) number, * from student;
查詢3次,有3個分割槽
SQL視窗函式 排序函式
1.排序函式用途 對某一列內容的數值大小,新建一列按1,2,3.排序。2.排序函式的完整表示式 row number over partition by 分組字段 order by 需排序字段 desc asc partition by 分組字段 進行分組排序,比如按照性別對身高進行排序時,女生按照...
mysql sql排序函式 SQL中排序函式的用法
sql中的排序函式有三 1 row number over 2 rank over 3 dense rank over 具體用法如下 1.row number over partition by 列名 order by 列名 desc 其中,partition by 是分組,在組內各自排序。row ...
SQL四大排序函式
sql四大排序函式 1 row number 函式作用就是將select查詢到的資料進行排序,每一條資料加乙個序號 select row number over order by score desc as rank from scores select from select row number...