Mysql如何对成绩进行排名并记录?

MYSQL降序今天查询的时候需要使用降序,但是总是报错我仔细检查了SQL语法没有问题然后我发现orderby应该放在limit前面。
换句话说,限制应该放在最后。
www.2cto.com[sql]Stringsql="select*froms_dayreport"+"whereuserId="+userId+""+"orderbytaskDatedesc"+"limit"+firstResult+","+maxResults+""示例降序排列,与数据输入无关,关键是你打印或显示的效果

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

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

查询同一科目总分前十名:mysql语句为:select*fromstudentorderbysubjectdesclimit10;

关于总分前十名查询:mysql语句为:选择sum(subject)subject,namefromstudentgroupwithoutmeorderbysubjectdesclimit10;

注意:

selectsum(subject)subject,name

这句话的意思是:sum(subject)subject用于将单个科目的分数相加。
按科目(即总分)命名,name是一个字段,这里只有两个字段。

groupbynameorderbysubject:groupbyname表示按姓名列分组,当然学生成绩单上的姓名可能相同,而学号是最准确的。

orderbysubject表示按照总分排序。
这里的科目是指之前改变的总分。

selectsum(subject)ascountsubject,namefromstudentgroupbynameorderbycountsubjectdesclimit10;

扩展信息:

学生成绩表常用SQL

inserttableinto1匹配主键

[sql]

/*gradle表*/

createtablesc

(

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

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

ScoreINTNOTNULL,/*课程分数*/

PRIMARYKEY(SID,CID)/*设置学号和课程号为复合主键*/)2.查询各科目最高分、最低分、平均分

[sql]

SELECTc.Cname,MAX(s.Score)ASmax,MIN(s.Score)ASMin,AVG(s.Score)ASAAverage

FROMCoursecJOINSCsONc.Cid=s.CID

GROUPBYc.Cname

/*这里需要注意如果不groupbyc.Cname,SQL语句会报错,并且c.Cname在SELECT语句中无效。
,因为它没有出现在聚合函数或者GROUPBY语句中*/

那些同学的3个询问平均分大于80分的学生姓名及平均成绩

[sql]

SELECTSName,AVG(Score)ASverageFROMStudentJOINSC

ONStudent.Sid=SC.Sid

GROUPBYSname

80

/*仅根据聚合函数HAVING语句删除可以做在.WHERE语句不支持聚合函数。
数量*/

4。
根据学生总分排名,如果总分相同,排名相同

[sql]

SELECTRANK()OVER(ORDERBYSUM(ss.score)).DESC)ASRank,s.Name,

ISNULL(SUM(ss.Score),0)

FROMStudentsLEFTJOINSCss

ONs.Sid​​=ss。
席德​

GROUPBYs.Sname

orderbysum(ss.Score)DESC

/*Rank()这是SQLServer的内置函数。
语法

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

[sql]

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

GROUPBYs.SnameHAVINGSUM(ss.Score)BETWEEN100AND200