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

学生表名称为“学生”,单科成绩字段为“学科”。
学生姓名为:姓名

查询单个科目前10名成绩:mysql语句为:select*fromstudentorderbysubjectdesclimit10;

查询总成绩前10名:mysql语句为:select*fromstudentorderbysubjectdesclimit10;

查询总成绩前10名:mysql语句是:selectsum(subject)subject,namefromstudentgroupbynameorderbysubjectdesclimit10;

注意:

selectsum(subject)subject,name

这条语句的意思是:sum(subject)subject是一个单一的由subject命名的(即,总分)。
Name是Field,这里只有两个字段。

groupbynameorderbysubject:groupbyname表示按照name列分组。
当然,学生成绩单上的名字可能是一样的,学号是最准确的。
这只是一个例子。

orderbysubject表示按照总分排序。
这里的科目指的是我们刚刚重命名的总分。

selectsum(subject)ascountsubject,namefromstudentgroupbynameorderbycountsubjectdesclimit10;

扩展信息:

学生成绩单常用的SQL

1、匹配表主键

[sql]

/*成绩册*/

CREATETABLESC

(

SidINTREFERENCESStudent(Sid),/*学生号*/

CidINTREFERENCESCourse(Cid),/*课程号*/

ScoreINTNOTNULL,/*课程成绩*/

PRIMARYKEY(Sid,Cid)/*学生ID和课程号作为复合主键*/)2.查询各科目的最高分、最低分、平均分。

[sql]

SELECTc.Cname,MAX(s.Score)ASMax,MIN(s.Score)ASMin,AVG(s.Score)ASaverage

FROMCoursecJOINSCsONc.Cid=s.Cid

GROUPBYc.Cname

/*这里,如果不按照c.Cname分组,SQL语句会报错,SELECT语句中c.Cname非法。
因为聚合函数或GROUPBY语句中没有出现*/

3.查询平均分在80以上的学生姓名和平均成绩。

[sql]]

SELECTSname,AVG(score)ASverageFROMStudentJOINSC

ONStudent.Sid=SC.Sid

GROUPBYSname

ONStudent.Sid=SC.Sid

GROUPBYSname

80

/*使用聚合函数进行删除只能通过HAVING语句执行。
WHERE语句不支持聚合函数。
人数*/

4.根据总分对学生进行排名。
如果总分相同,则排名也相同。

[sql]

SELECTRANK()OVER(ORDERBYSUM(ss.Score)DESC)ASRank,s.Sname,

ISNULL(SUM(ss.Score))),0)

FROMStudentsLEFTJOINSCss

ONs.Sid​​​​=ss.Sid​​​​

GROUPBYs.Sname

ORDERBYSUM(ss.Score)DESC

/*RANK()SQLServer内置函数。
语法为

RANK()OVER([partition_by_clau]order_by_clau.se).*/5查询总分在100到200之间的学生姓名和总分。

[sql]

SELECTs.Sname,SUM(ss.Score)FROMStudentsJOINSCssONs.Sid​​​​=ss.Sid​​​​​

GROUPBYs.SnameHAVINGSUM(ss.Score)BETWEEN100AND200

mysql怎么统计各系学生人数

在MySQL中,要统计每个系的学生人数,可以使用如下SQL语句:例如如下:selectDepartmentnamefield,count(studentcode)fromtablenamebyfieldnamegroup这里使用了count函数按每个院系统计学生人数,group条款保证每个院系独立统计。
该查询将返回每个院系及其相应的学生人数。
为了更好地理解这个过程,我们可以用一个简单的例子来说明:假设我们有一个名为students的表,包含字段学号和部门名称。
我们想知道每个系的学生人数。
然后我们可以运行以下SQL语句:选择部门名称字段,按部门名称字段从学生组中计数(学生人数)。
该SQL语句将返回一个列表,列出每个部门和相应的学生人数。
这样,我们就可以很容易地看到学生人数在院系之间的分布情况。
此外,我们还可以进一步优化查询,例如添加一些额外的过滤器或排序规则来满足特定需求。
例如,我们可以通过添加Where子句来按特定条件过滤学生,或者使用orderby子句按学生人数降序对结果进行排序。
总之,使用count函数和group子句是统计MySQL数据库中各系学生人数的有效方法。
通过这种方式,我们可以轻松获取更好地了解学生分布所需的信息。