mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等

mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等,第1张

学生表名为:student, 单科成绩的字段为:subject。学生名字为:name

查询单科成绩前十:mysql语句为:select from student order by subject desc limit 10;

查询总分成绩前十:mysql语句为:select sum(subject) subject,name from student group by name order by subject desc limit 10;

注:

select sum(subject) subject,name

这句的意思是:sum(subject) subject 把单科成绩加总用subject 来命名(就是总成绩),name就是一个字段,这里只有两个字段。

group by name order by subject : group by name 的意思按照名字这一栏来分组,当然,学生成绩表名字有可能是一样的,按照学号是最准确的,这里只是举个例子。

order by subject  这句的意思是按照总分成绩排序,这里的subject 是前面重命名总分的意思。

select sum(subject) as countsubject,name from student group by name order by countsubject desc limit 10;

扩展资料:

学生成绩表常用sql

1 在表中插入符合主键

[sql]

/成绩表/

CREATE TABLE SC

(

Sid INT REFERENCES Student(Sid), /学生学号/

Cid INT REFERENCES Course(Cid), /课程编号/

Score INT NOT NULL, /课程分数/

PRIMARY KEY(Sid,Cid) /将学生学号和课程编号设为复合主键/ 
)
2 查询各科成绩最高分,最低分以及平均分

[sql]

SELECT cCname, MAX(sScore) AS Max, MIN(sScore) AS Min, AVG(sScore) AS Average 

FROM Course c JOIN SC s ON cCid = sCid 

GROUP BY cCname 

/此处应注意,若不按照cCname进行分组,SQL语句会报错,cCname在SELECT语句中不合法,因为它并未出现在聚合函数中也没有出现在GROUP BY语句中/


3 查询平均成绩大于80分的学生姓名以及平均成绩

[sql]

SELECT Sname, AVG(Score) AS Average FROM Student JOIN SC 

ON StudentSid=SCSid 

GROUP BY Sname

HAVING AVG(Score)>80 

/以聚合函数为条件进行删选只能在HAVING语句中进行,WHERE语句不支持聚合函数/

4 按总分为学生排名,总分相同名次相同

[sql]

SELECT RANK() OVER (ORDER BY SUM(ssScore) DESC) AS Rank, sSname,

ISNULL(SUM(ssScore),0) 

FROM Student s LEFT JOIN SC ss 

ON sSid = ssSid 

GROUP BY sSname 

ORDER BY SUM(ssScore) DESC

/RANK()是SQL Server的一个built-in函数,语法为

RANK() OVER ( [ partition_by_clause ] order_by_clause )/
5 查询总分在100至200之间的学生姓名及总分

[sql]

SELECT sSname,SUM(ssScore) FROM Student s JOIN SC ss ON sSid=ssSid

GROUP BY sSname HAVING SUM(ssScore) BETWEEN 100 AND 200

以上就是关于mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等全部的内容,包括:mysql中一张学生表,查询出单科成绩前十名学生的所有信息 和总分成绩前十名学生的所有信息 在线等、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9745256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存