查詢每個學生的課程成績最高的成績信息
Ⅰ 在資料庫查詢中查詢各門課程取得最高成績的學生姓名和成績
select
t.sno,sname,avg(grade)
as
平均分,count(cname)
as
選課門數
from
student
t,sc
c,course
e
where
t.sno=c.sno
and
c.cno=e.cno
and
t.sno=
(select
top
1
t1.sno
from
student
t1,sc
c1,course
e1
where
t1.sno=c1.sno
and
c1.cno=e1.cno
and
e1.cname='數據結構'
order
by
c1.grade
desc)
group
by
t.sno,sname
1.
先用子查詢
查出課程最高分的同學的學內號容
2.
再根據學號得到平均分agv和選課門數
count
Ⅱ 查詢每個同學所修課程的平均成績和最高成績,按降序排列輸出姓名、平均成績,最高成績, 用sql select
這里涉及到了兩張表,學生表tb_student 和 成績表 tb_score。不知道你要按照那個屬性來排序,所以就都寫上了,第一排序:姓名,第二排序:平均成績,第三排序:最高成績
select st.name,avg(score) avgScore,max(score) maxScore from tb_score sc right join tb_student st on st.id = sc.stu_id group by stu_id,st.name order by st.name,avg(score),max(score) desc;
Ⅲ SQL查詢每課成績最高的學生的信息
select
distinct
*
from
(
select
需要抽取的欄位
from
學生成績內表容
a
where
a.語文
=
(select
max(語文)
from
學生成績表)
union
all
select
需要抽取的欄位
from
學生成績表
a
where
a.數學
=
(select
max(數學)
from
學生成績表)
union
all
select
需要抽取的欄位
from
學生成績表
a
where
a.英語
=
(select
max(英語)
from
學生成績表)
。。。)
b
如果需要包含學科成績,那還要做處理。
Ⅳ sql,查詢每門課程最高分的學生的學號,課程號,成績。再一張表裡
1、首先在打開的sql中,查看Market資料庫中供應商來自哪些州的哪些城市,如內下圖所示。
Ⅳ mysql 如何查詢每個學生成績最高那門課程
Select 課程,MAX(成績) from 表 group by 學生名欄位,這樣應該可以吧
Ⅵ 查詢每個學生的所選課程的最高成績 已得到如下結果 要求列出學號,姓名,課程編號,分數
CURRICULUM .課程編號 你 寫的CURRICULUM 和點中間有個空格,看見沒?
最後一行也是這個位置也是同樣問題
GRADE.課程編號=CURRICULUM .課程編號 這個位置也是
select e.學號,e.姓名,f.課程編號,f.分數 from STUDENT e,
(select c.學號 學號,c.分數 分數,d.課程編號 課程編號 from GRADE d,
(select b.學號,MAX(a.分數)分數 from GRADE a,STUDENT b
where a.學號=b.學號 group by b.學號) c
where c.學號=d.學號
and c.分數=d.分數) f
where e.學號=f.學號
Ⅶ SQL查詢求每個同學的課程成績的最高分,查詢結果項包括:學生姓名、課程號及最高分
你好,你展示的第一種sql查詢方案,其意思是:
先根據score表中的sno分組求每個sno的最高分數。這求得的當然是每個同學的最高分啦,但是只是獲得了最高分,沒有指定是誰的最高分,導致在前面的【SELECT SNAME ,CNO,GRADE FROM Score Y,StudentWHERE (STUDENT.SNO=Y.SNO)】查詢結果集中的後面檢索條件【AND Y.GRANDE IN (所有人的最高分集合)】,這樣系統就會查詢分數在「所有人的最高分」里的結果集了。
而第二種方案,除了限定分數范圍(最高分),還限定了學生的編號(
SELECTMAX(GRADE)FROMSCOREWHERE
SNO=Y.SNO
GROUPBYSNO,sno=y.sno就是限定學生的編號。
),所以結果自然不同了。
根據你的要求,我給你提供一種查詢方式。其實原理是一樣的哦。
selectstu.sname,scr.cno,scr.gradefromstudentstu
leftjoinscorescronscr.sno=stu.sno
whereexists(select1from(selects.sno,max(s.grade)asmgfromscoresgroupbys.sno)twheret.sno=stu.sno
andt.mg=scr.grade)
希望能幫助你。
Ⅷ SQL查詢資料庫中最高分學生的信息, 怎麼寫
t1 學生信息表
編號 姓名
t2 學生成績表
編號 課程編號 學生編號 成績版
t3 課程信權息表
編號 課程
select t1.* , t3.課程, t.成績
from t1 left join (select min(編號) 編號, 課程編號, max(成績) 成績
from t2 group by 課程編號) t on t1.編號 = t.學生編號
left join t3 on t2.課程編號 = t3.編號
Ⅸ 用SQL查詢每個學生的所選課程的最高成績 要求列出學號,姓名,課程編號,分數
select s.st_id,st_name,c_no,score,max(score)
from st_info s join s_c_info sc
on s.st_id=sc.st_id
group by st_id,st_name,c_no group by s.st_id,sc.st_name,sc.c_no這句
Ⅹ 用SQL查詢每個學生的所選課程的最高成績 要求列出學號,姓名,課程編號,分數 已經得到如下結果 多謝咯
用了聚合函數就需要對其(group by )分組
select STUDENT.學號,姓名,課程名稱,max(分數)
FROM GRADE JOIN STUDENT ON GRADE.學號=STUDENT.學號 JOIN CURRICULUM ON GRADE.課程編號=CURRICULUM.課程編號 group by STUDENT.學號,姓名,課程名稱