Ⅰ sql語句如何查詢成績第二高的學生
假設學生成績表為xscj,裡面有若干個欄位,其中包括具體成績得分欄位df,那麼,查詢所有成績第二高學生的SQL語句如下:
select * from xscj where df in (
select max(df) from xscj where df not in (
select max(df) from xscj))
該語句嵌套基層,最內層的語句查詢最高分,第二層的語句查詢除了最高分以外後剩下的最高分(即第二高分),最外層即是查詢第二高分有哪些人(可能存在多人的情況)。
Ⅱ 查詢每門課成績最高分的同學的sql語句,輸出課程名,姓名,學號,分數。表的結構如下。寫出完整的sql語句
SELECT cname,sname,student.sno,grade
FROM student join sc on student.sno=sc.sno
join course on course.cno=sc.cno
where grade=(select max(grade)
from sc
where cno=course.cno )
Ⅲ sql語句查詢成績最高的學生
select * from 學生表 where 學生id in (select 學生id from 分數表 where 分數值 = (select Max(分數欄位) from 分數表)),這樣查詢即可。
Ⅳ SQL 查詢各門成績前兩名的學生
你先抽一條數據來反過來理解這條SQL
比如 你表格里的第一條:陳六、政治
SQL里的子句你把t.subject 替換成 我們這條數據真實的值,就可以看出來
select top 2 stu_id from stu_score where subject='政治' order by score desc
就是查詢我當前這條記錄對應的subject(政治)里,成績最高的兩條數據的 stu_id。
我再提供一種寫法給你
select*from(
selectt1.*,row_number()over()asfidfromstu_score)wherefid<=2
這種寫法主要是row_number() over(partition by subject order by score desc),
意思是:我按照subject 分組,根據score排序從大到小,分別標出序號fid。也就是我把不同subject的成績按從大到小排序,然後外層再取各自的前兩名
Ⅳ sql 如何查找出每個月成績進步最快的同學是誰
假設學生成績表為xscj,裡面有若干個欄位,其中包括具體成績得分欄位df,那麼,查詢所有成績第二高學生的SQL語句如下: select * from xscj where df in ( select max(df) from xscj where df not in ( select max(df) from xscj)) 該語句嵌套基層,最內層的語句查詢最高分,第二層的語句查詢除了最高分以外後剩下的最高分(即第二高分),最外層即是查詢第二高分有哪些人(可能存在多人的情況)。
Ⅵ sql 查找成績排名第二的同學
你這信息不足以讓我了解如何給你答案,很明顯,如果第一名有並列、第二名也有並列的情況,以上各位用top的答案都是錯的。
因此,建議你將表結構給出來,我好幫你分析問題。
或者你試試看這樣:
select * from tbl_score where score =
(
select distinct top 1 score from tbl_score where score not in(
select distinct top 1 score from tbl_score order by score desc
) order by score desc
)
我在我自己的臨時表測試過,應該這樣就可以滿足的了查詢成績第二的情況,包括並列第二的所有人。
不知道樓主是否想要的就是這樣?
Ⅶ excel中SQL如何找出考試成績總分前5名的同學
可以用row_number函數來解決。
1、創建測試表,插入數據:
createtablesc(idint,namevarchar(20),classvarchar(20),scoreint);insertintoscvalues(1,'badkano','一年一班',100)insertintoscvalues(2,'網路知道團長','一年一班',99)insertintoscvalues(3,'小短','一年一班',95)insertintoscvalues(4,'小小動','一年一班',97)insertintoscvalues(5,'小智','一年一班',80)insertintoscvalues(6,'呂布','一年二班',67)insertintoscvalues(7,'趙雲','一年二班',90)insertintoscvalues(8,'典韋','一年二班',89)insertintoscvalues(9,'關羽','一年二班',70)insertintoscvalues(10,'馬超','一年二班',98)
2、查詢每個班級的前五名,可用語句:
select*from(selectrow_number()over()排名,*fromsc)twhere排名<=3orderbyclassasc,scoredesc
3、結果截圖:
Ⅷ sql server查詢總分最高學生信息
select*fromxswherexh
in
(selectxs.xhfromxs,kc,xs_kcwherexs.xh=xs_kc.xhandkc.kch=xs_kc.kch
groupbyxs.xhhavingsum(xs_kc.cj)=(selecttop1sum(cj)fromxs_kcgroupbyxhorderbysum(cj)desc))
如果有多個學生總分並列的話,這個會把並列總分最高的學生都顯示出來,不知道符合你要求不
Ⅸ SQL語句 撈出各班級總分第二的人
--按班級分組 最大的總分 去掉最大的分數 就是第二名
select x.* from A x,
(select classId,max(Math+English+Yuwen) as SecondScore from A
where Id not in --先去掉總分第一名的id
(select A.ID from A,
(select ClassId,max(Math+English+Yuwen) as TotalScore from A
group by ClassId) t
where a.Math+a.English+a.Yuwen=t.TotalScore and A.ClassId=t.ClassId)
group by classId) temp
where x.Math+x.English+x.Yuwen=temp.SecondScore
and x.ClassId=temp.ClassId
Ⅹ 用sql語句,查詢每個班級成績排名前三名的學生姓名
1、首先在打開的SQLServer中,假設有兩條數據中,包含有【張】,但是這個張一前一後,如下圖所示。