用sql語句,查詢每個班級成績排名前三名的學生姓名
1、首先在打開的SQL Server中,假設有兩條數據中,包含有【張】,但是這個張一前一后,如下圖所示。
2、此時就能利用Select和From語句,查詢數據,如下圖所示。
3、但是要查找姓名中包含有【張】,那么不能用等號,如下圖所示。
4、因此一定要必須使用Like關鍵字,才能查詢SQL的數據。
5、這個時候,如果單對【張】字后加個百分號是不允許的,這樣只能查找姓張的數據。
6、如果想要前后都有關鍵字【張】,那么一定要在前后都加百分號,就能實現模糊查找姓名。
思路是先分組后按成績排序
你的數據結構是怎么樣的呢?
是否已經計算了總分
假設已經計算了總分
前三名所有記錄 列可以自定義 (列出前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
然后其他數據庫自己靈活運用你自己所使用的數據庫的上述方法
select top 3 * from 成績 group by 班級 order by 成績
sql 數據庫 怎樣檢索出每個班級里 總分數TOP10的學生姓名,并按班級和總分排名
班級 學生姓名 時裝類型 分數rn1班 六兒 語文 43rn2班 汪語晨 數學 56rn3班 劉可 語文 67rn1班 六兒 英語 78rn4班 鄭爽 數學 98rn2班 汪語晨 歷史 46rn4班 湯可 數學 79rn1班 六兒 數學 35rn4班 湯可 歷史 68rn2班 汪語晨 英語 87rn2班 陳忠 數學 35rn2班 汪語晨 語文 84rn3班 阿沿 語文 76rn1班 六兒 歷史 68rn...SELECT * FROM (SELECT 班級,姓名,SUM(分數) 總分數,ROW_NUMBER() OVER(PARTITION BY 班級 ORDER BY SUM(分數) DESC) 班級名次
FROM 表名
GROUP BY 班級,姓名) T
WHERE 班級名次<=10
ORDER BY 班級,班級名次
sql查詢排名總分前十的學生姓名!
數據庫查詢!
SELECT * FROM (SELECT 班級,姓名,SUM(分數) 總分數,ROW_NUMBER() OVER(PARTITION BY 班級 ORDER BY SUM(分數) DESC) 班級名次 FROM 表名 GROUP BY 班級,姓名) T WHERE 班級名次<=10 ORDER BY 班級,班級名次
sql 數據庫怎樣檢索出每個班級里總分數TOP10的學生姓名,并按班級和總分排名?
sql 數據庫怎樣檢索出每個班級里總分數TOP10的學生姓名,并按班級和總分排名:
select class,grade from student group by class having top10(grade)
這里用一下top方法就可以定位到你想要的那一行啦
希望我的回答對你會有幫助
相關推薦:
農轉非戶口政策(農轉非戶口有什么好處)
農轉非戶口(農轉非戶口有什么好處)
嫖娼被抓有什么處罰(嫖娼被抓后如何處置)
人口普查能上戶口嗎(人口普查可以給孩子上戶口嗎)
身份證遺失如何辦理(公民身份證遺失如何補辦)