一張表tb_student
insert into [tb_student] values('001','姜子牙','語文',80);
insert into [tb_student] values('001',姜子牙','數學',70);
insert into [tb_student] values('001','姜子牙','英語',90);
insert into [tb_student] values('002','娜吒','語文',88);
insert into [tb_student] values('002','娜吒','數學',77);
insert into [tb_student] values('002','娜吒','英語',85);
insert into [tb_student] values('003','雷震子','語文',99);
insert into [tb_student] values('003','雷震子','數學',67);
insert into [tb_student] values('003','雷震子','英語',94);
生成結果
id sname subject grade student_no row5 旺旺 數學 90
0021
2 章三 數學 80
0012
11 娜吒 數學 67
0043
6 旺旺 英語 100
0021
15 雷震子 英語 97
0052
3 章三 英語 90
0013
13 雷震子 語文 89
0051
4 旺旺 語文 80
0022
10 娜吒 語文 78
0043
--sql server sql語句
with tableorder as(
select t.*,row_number() over(partition by t.[subject] order by t.grade desc) row from [tb_student] t)
select * from tableorder where row<=3;
--oracle sql
select * from (
select t.*,row_number() over(partition by t.[subject] order by t.grade desc) rownum from [tb_student] t) where rownum<=3;
SQL統計每科前三名的學生的語句
偶然在論壇看到乙個的帖子,關於他遇到乙個面試題的,寫了很多,我看了一下,結果應該是沒問題的,但是為何面試官還是不滿意,我想面試官可能並不是想考你真能把這道題做出來,而是看你如何簡潔的通過乙個sql語句就完成,重點我想是面試官想看到 row number partition 這樣的關鍵字吧 下面說下具...
36匹馬賽跑,選出前三名的次數
36匹馬賽跑,跑道同時只能容許6匹馬。而且36匹馬速度不同,但是每次跑的速度恆定。問跑多少次可以選出第一,第二,第三名?答 8次 來分析 第一步,我們將36匹馬分成6支隊伍,編號如下 a1,a2,a6 b1,b2,b6 c1,c2,c6 d1,d2,d6 e1,e2,e6 f1,f2,f6 每支隊伍...
Hive Sql 查詢最被喜歡的愛好的前三名
需求 查詢最被喜歡的愛好的前三名。需求解析 最被喜歡的愛好,就是看哪個愛好的人數最多 user hobbys表,資料如下 資料是製表符隔開的 name hobby john 男 打桌球,游泳,看電影 jack 男 打桌球,看電影 lucy 女 看書,購物 lili 女 游泳,看電影 create t...