SQL排序函式

2022-09-12 01:39:13 字數 1300 閱讀 4169

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...