sql分組排名

2021-05-26 11:01:38 字數 1389 閱讀 5913

資料庫teradata

--班級科目成績表

create multiset table pd_portal.aaa ,no fallback ,

no before journal,

no after journal,

checksum = default

(banji varchar(40) character set latin casespecific title '班級',

kecheng varchar(40) character set latin casespecific title '科目',     

ceshiren varchar(40) character set latin casespecific title '測試人',      

chengji int title '成績')

--測試資料

insert into pd_portal.aaa values('110','語文','張三',80);

insert into pd_portal.aaa values('110','數學','張三',70);

insert into pd_portal.aaa values('110','英語','張三',60);

insert into pd_portal.aaa values('110','語文','李四',80);

insert into pd_portal.aaa values('110','數學','李四',70);

insert into pd_portal.aaa values('110','英語','李四',60);     

insert into pd_portal.aaa values('110','語文','王五',80);

insert into pd_portal.aaa values('110','數學','王五',70);

insert into pd_portal.aaa values('110','英語','王五',60);

--count sql

select * from pd_portal.aaa a where (select count(*) from pd_portal.aaa b where a.banji=b.banji and b.kecheng=a.kecheng

and a.chengji--sql 分析函式

select a.banji,a.kecheng,a.ceshiren,a.chengji

,rank() over (partition by a.banji,a.kecheng order by a.banji,a.kecheng,a.chengji  desc) as rank_1

from pd_portal.aaa a

qualify rank_1<3

Sql排名和分組排名

在很多時候,都有排名這個功能,比如排行榜,並且還需要分頁的功能,一般可以再select的時候按照某一字段 oorder by xx desc,這樣limit 查詢就可以得到排名資訊,但是有時候是需要多表連線,或者是有乙個隨機檢視,在頁面上並不是按照排名公升降序。這個時候就需要用sql來實現排名。先準...

mysql分組排名 mysql分組排名

1.建立表並寫入測試資料 create table tb rank score city varchar 20 score int insert into tb rank score values sz 89 insert into tb rank score values sz 76 insert...

sql 分組後 組內排名

語法 row number over partition by column order by column 簡單的說row number 從1開始,為每一條分組記錄返回乙個數字,這裡的row number over order by xlh desc 是先把xlh列降序,再為降序以後的沒條xlh記...