用sql求每門課程的前三名,sql語句 求每門課程的成績都在80分以上的學生的學號

2022-03-07 09:15:40 字數 3025 閱讀 7603

1樓:移動引領生活

create table score

(sno varchar(20) ,

cno varchar(20),

degree int

)insert into score (sno ,cno ,degree ) values ('001','a',100)

insert into score (sno ,cno ,degree ) values ('002','a',99)

insert into score (sno ,cno ,degree ) values ('003','a',98)

insert into score (sno ,cno ,degree ) values ('004','a',97)

insert into score (sno ,cno ,degree ) values ('001','b',100)

insert into score (sno ,cno ,degree ) values ('002','b',100)

insert into score (sno ,cno ,degree ) values ('003','b',99)

insert into score (sno ,cno ,degree ) values ('004','b',98)

insert into score (sno ,cno ,degree ) values ('001','c',100)

insert into score (sno ,cno ,degree ) values ('002','c',100)

insert into score (sno ,cno ,degree ) values ('003','c',99)

insert into score (sno ,cno ,degree ) values ('004','c',98)

select * from

(select *,row_number () over(partition by cno order by degree desc) as pm from score

) xwhere x.pm <=3

select * from

(select *,rank () over(partition by cno order by degree desc) as pm from score

) xwhere x.pm <=3

select * from

(select *,dense_rank () over(partition by cno order by degree desc) as pm from score

) xwhere x.pm <=3

2樓:右側enter鍵

用排序,然後取前三名,也可以直接用 top

3樓:匿名使用者

這個還真有點麻煩,你的資料庫支援 top指令嗎?

sql語句:查詢各班成績前3的同學姓名

4樓:匿名使用者

可以用row_number函式來解決。

1、建立測試表,插入資料:

2、查詢每個班級的前三名,可用語句:

select * from

(select row_number() over (partition by class order by score desc) 排名,* from sc) t

where 排名<=3 order by class asc,score desc

3、結果截圖:

5樓:

sql語句查詢各班成績前3的同學姓名就是很好用的

6樓:

select * from tablename a where score in ( select top 3 score from tablename b where a.classid=b.classid order by score desc);

你的意思是這樣吧!希望對你有所幫助。想了下!自己順便思考學習下!

7樓:匿名使用者

select sno,classid,name,score,row_number over(partition by classid order by score) rn from 表

where rn>4

order by name desc

8樓:匿名使用者

select * from table order by score desc limit 0,3;

9樓:匿名使用者

select * from sc a where sno in(select top 3 sno from sc b where a.cid=b.cid order by score desc) order by cid,score desc

sc是表名,cid就是classid

此處利用表的虛擬自連線

sql語句 求每門課程的成績都在80分以上的學生的學號

10樓:匿名使用者

select sno from student where sno not in ( select sno from sc where grade<80 )

select distinct sno from sc where cno in (select cno from course where cteacher='程軍

來')就是

自這樣,

bai應du該沒zhi

錯!dao

11樓:

select sno from sc where grade > 80

select sno from student where sno in

(select sno from sc where cno = (select cno from course where cname = '程軍'))

SQL資料查詢查詢選擇了同一門課程的兩個不同學生的學號及

你好像寫來錯了吧自,我感覺應該是 select sno from sc where cno 1 and son in select sno from sc where cno 2 或者where cno 1 intersert select sno from sc where cno 2 inter...

三門冰箱每門的溫度是多少?國家標準

要看bai你的是什麼品牌的du 西門子的冷藏2 8度 中間zhi0 3度 冷凍 16 24度dao國產的冷內藏容0 10度 中間 7 0度 冷凍 18 26度這個國家目前還沒有出臺具體的溫度標準,因為我就是作售後服務的 冷藏室 2.0 8.0 變溫室 7.0 10.0 冷凍室 24.0 16.0 一...

求C讀取的每一行資料,在每一行資料前加一串相同的

徒手寫的 可能有些許拼寫錯誤,題主領會精神就好。c 如何一行一行的讀取txt文字 每讀取一行內容 就把這一行的內容寫入一個字串陣列 插!答得好?答得好,你壓根就看不懂,有啥用?自個慢慢找資料解決吧 string line string.empty listlines new list using s...