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

時間 2021-07-23 07:11:14

1樓:匿名使用者

可以用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、結果截圖:

2樓:

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

3樓:

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

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

4樓:匿名使用者

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

where rn>4

order by name desc

5樓:匿名使用者

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

6樓:匿名使用者

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語句,查詢每個班級成績排名前三名的學生姓名

7樓:翔阿狗

思路是先分組後按成績排序

8樓:匿名使用者

你的資料結構是怎麼樣的呢?

是否已經計算了總分

假設已經計算了總分

前三名所有記錄 列可以自定義 (列出前3名成績總分 3種主流資料庫寫法)

sqlserver資料庫:

select top 3 from 成績表 order by 總分 desc

mysql資料庫:

select * from 成績表 order by desc 總分 desc limit 3

oracle資料庫:

select * from 成績表 order by desc 總分 rownum <= 3

如果說沒有給出總分

需要先計算總分

select (語文+數學+。。。)as total top 3 from 成績表 order by total desc

然後其他資料庫自己靈活運用你自己所使用的資料庫的上述方法

9樓:匿名使用者

select top 3 * from 成績 group by 班級 order by 成績

求一條sql語句查出三年級學生的總成績排名:學生姓名,老師姓名,所屬班級,總分,排名

10樓:匿名使用者

select

學生表a.名稱

as 學生姓名,

老師表b.名稱 as 老師姓名,

班級表c.名稱 as 所屬班級,

總分專表g.總分 as 總分,

屬rownum as 排名

from

(select

學生編號 as 學生編號,

sum(考試成績) as 總分

from

成績表f

group by 學生編號)總分表g

inner join

學生班級表d

on學生班級表d.學生編號 = 總分表g.學生編號inner join

老師班級表e

on老師班級表e.班級編號 = 學生班級表d.班級編號inner join

班級表c

on班級表c.編號 = 老師班級表e.班級編號inner join

學生表a

on學生表a.編號 = 學生班級表d.學生編號inner join

老師表b

on老師表b.編號 = 老師班級表e.老師編號where

班級表c.年級 = '三年級'

order by 總分表g.總分 desc不同資料庫取得rownum的方法不一樣注意變下

11樓:匿名使用者

求一條sql語句查出三年級學生的總成績排名:學生姓名,老師姓名,所屬班級,總內分,排名

select

學生表a.名稱容 as 學生姓名,

老師表b.名稱 as 老師姓名,

班級表c.名稱 as 所屬班級,

總分表g.總分 as 總分,

rownum as 排名

from

(select

學生編號 as 學生編號,

sum(考試成績) as 總分

from

成績表f

group by 學生編號)總分表g

inner join

學生班級表d

on學生班級表d.學生編號 = 總分表g.學生編號inner join

老師班級表e

on老師班級表e.班級編號 = 學生班級表d.班級編號inner join

班級表c

on班級表c.編號 = 老師班級表e.班級編號inner join

學生表a

on學生表a.編號 = 學生班級表d.學生編號inner join

老師表b

on老師表b.編號 = 老師班級表e.老師編號where

班級表c.年級 = '三年級'

order by 總分表g.總分 desc不同資料庫取得rownum的方法不一樣注意變下

怎麼用sql查詢班級前十名成績的同學的姓名和分數(成績相同的學生算同乙個名次)

12樓:寒默憂傷

select name,score from (

select name,score,dense_rank() over(order by score) "row" from t )

where "row"=10

13樓:南柯一夢丶

取到排名的前十位:

with rk as(

select stu_score,stu_name,dense_rank()over(order by stu_score desc)as rank

from studentscore) select top 10rk.* from rk

取到排名的前十名:

with rk as(

select stu_score,stu_name,dense_rank()over(order by stu_score desc)as rank

from studentscore) select* from rk where rk.rank <='10'

14樓:淡淡飛

先用group by以成績分組,再用top取前十個。

select top 10 姓名,分數 from 成績表

group by 成績

sql查詢語句的問題,sql語句關於查詢的問題

select d,count from select day 訪問時間 d,ip位址,count from 訪問記錄表 where year 訪問時間 2008 and month 訪問時間 5 group by 1,2 一 如果你的資料庫伺服器獲取日期時間欄位的日數 1 31 不是day,請你修改...

求一SQL語句 如何查詢最大的前值

三點水加個木 mysql用法 select 欄位名 from 表名 order by 欄位名 desc limit 3 mssql用法 select top 3 欄位名 from 表名 order by 欄位名 desc 丸紙 查詢最大的前3個值的方法及編寫方式 1 select max 欄位 值1...

請教SQL的查詢語句,請教SQL的乙個查詢語句

select max count ppart from orders group by ppart 這是查詢訂單數最多的產品 select max count onu from orders group by ono 這是查詢那個訂單所售的東西書目最多 select max count onu fr...