row number 與rank 的用法

2021-08-18 01:39:28 字數 1566 閱讀 9047

create table student  --學生成績表

( id int, --主鍵

grade int, --班級

score int --分數)go

insert into student values(1,1,88);

insert into student values(2,1,66);

insert into student values(3,1,75);

insert into student values(4,2,30);

insert into student values(5,2,70);

insert into student values(6,2,80);

insert into student values(7,2,60);

insert into student values(8,3,90);

insert into student values(9,3,70);

insert into student values(10,3,80);

insert into student values(11,3,80);

select * from student

一、分割槽函式partition by的與row_number()的用法

1、不分班按學生成績排名

select id,score,grade, row_number() over(order by score desc) as sequence from student

2、分班後按學生成績排名

select id,score,grade,row_number() over(partition by grade order by score desc) as sequence from student

3、獲取每個班的前1(幾)名

select id,score,grade from

(select id,score,grade,row_number() over(partition by grade order by score desc) as sequence from student

)t where t.sequence<=1

二、分割槽函式partition by與排序rank()的用法

1、分班後按學生成績排名 該語句是對分數相同的記錄進行了同一排名,例如:兩個80分的並列第2名,第4名就沒有了

select id,score,grade,rank() over(partition by grade order by score desc) as sequence from student

2、獲取每個班的前2(幾)名 該語句是對分數相同的記錄進行了同一排名,例如:兩個80分的並列第2名,第4名就沒有了

select id,score,grade from

(select id,score,grade,rank() over(partition by grade order by score desc) as sequence from student

)t where t.sequence<=2

HIVE中row number函式的描述與使用場景

假設乙個場景 存在表user score,該錶的資料如下 table id rate score 1 0 4 10 2 0 4 40 3 0 4 30 4 0 4 20 5 5 10 10 6 5 10 40 7 5 10 30 8 5 10 20 9 11 20 10 10 11 20 40 11...

SQL Server中row number的用法

row number 函式將針對select語句返回的每一行,從1開始編號,賦予其連續的編號。在查詢時應用了乙個排序標準後,只有通過編號才能夠保證其順序是一致的,當使用row number函式時,也需要專門一列用於預先排序以便於進行編號。row number 常用的幾種情況 1.使用row numb...

SQL Server中row number的用法

定義 row number 函式將針對select語句返回每一行,從一開始編號,賦予其連續的編號。在查詢時應用了乙個排序標準後,只有通過編號才能確保順序是一致的,當使用row number函式是,也需要專門一列用於實現排序以便於進行編號。row number 說明 返回結果集分區內的序列號,每個分割...