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 說明 返回結果集分區內的序列號,每個分割...