A. sql查询列出各班的平均成绩,最高成绩和最低成绩
sql查询列出各班的平均成绩,最高成绩和最低成绩
表连接,分组统计也不会?
SELECT S.ClassCode AS [班级代码]
,C.ClassName AS [班级名称]
,Avg(Score) AS [平均分]
,Max(Score) AS [最高分]
,Min(Score) AS [最低分]
FROM Scores S
JOIN Classes C ON C.Code = S.ClassCode
WHERE S.CourseCode IN (
SELECT CourseCode
FROM Courses
WHERE Name = '高等数学'
)
GROUP BY S.ClassCode
ORDER BY S.ClassCode
B. 写一条SQL语句,求每个班级各个学科的最高分
SELECT 班级, 科目, MAX(分数)
FROM tab
group by 班级, 科目
C. 用SQL选出每个人成绩的最高纪录
查询每个人最高成绩SQL:
第一种:先使用group by和max得到最高分数和学科,然后再查询一下score表,找到学科和分数都相同的记录
select b.* from (select max(score) t,course from score group by course) a,score b where a.t=b.score and a.course=b.course
第二种:先得到相同学科的最高分数,再查询score表,找到最高分数的记录select * from score a where score=(select max(score) from score where course=a.course)
第三种:score表中,当学科一样的时候,不存在一条记录的分数小于其它记录的分数select * from score a where not exists(select * from score where a.course=course and a.score<score)
D. 用一条SQL语句计算出每个班级的最高分最低分平均分
1.
select 班级,max(成绩) 最高分,min(成绩) 最低分,avg(成绩) 平均分
from table
group by 班级;
2.
select 班级,avg(成绩) 平均分
from table
group by 班级
having avg(成绩) > 95;
E. 怎么使用一个sql语句,统计出每个学生的最高分和最低分。
selectnamemax(chinese),max(chinese),max(math),min(math),max(english),min(english)fromtablegroupbyname
F. sql 如何查询每个班级中的最高分
具体代码如下:
select班级名称,分数=MAX(成绩)
from
学生表sjoin班级表c
ons.班级号=c.班级号
join成绩表sc
ons.学号=sc.学号
groupby班级名称
(6)sql求每个年级的最高分扩展阅读:
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。
不同的 SQL JOIN,您可以使用的不同的 SQL JOIN 类型:
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
Oracle官方API接口-PL/SQL API
W3cSchool-SQL JOIN
G. sql 查询各个班级的最高分和最低分,最高分与最低分为一列
selectstudent,class,gradefrom(
select*
,row_number()over(partitionbyclassorderbygrade)seq1
,row_number()over()seq2
fromtt)t
whereseq1=1orseq2=1
结果如下:
H. 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)
希望能帮助你。