当前位置:首页 » 编程语言 » sql第10名的分数查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql第10名的分数查询

发布时间: 2022-05-28 00:16:43

sql 数据库 怎样检索出每个班级里 总分数TOP10的学生姓名,并按班级和总分排名

SELECT*FROM(SELECT班级,姓名,SUM(分数)总分数,ROW_NUMBER()OVER(PARTITIONBY班级ORDERBYSUM(分数)DESC)班级名次
FROM表名
GROUPBY班级,姓名)T
WHERE班级名次<=10
ORDERBY班级,班级名次

② SQL语句查询成绩排名前十名的学生

:以上两条均对!,关于表名和排序字段,让提问题的【朋友】填写,我们三人均祝你成功!!!

③ 用SQL语句查某班第10-15名成绩的学生信息,各位高手们有没有简便的方法

select top 5 from (
select * from (select top 15 * from 成绩表 order by 总成绩 asc ) a
order by 总成绩 desc
) b
order by 总成绩
嵌套一下就可以了

④ SQL语句查询某字段数值排名第10名 如何查询

select grade,row_number()over(partition by class order by grade desc) mm from 成绩表 where 班级=6 and mm=10

⑤ SQL语句查询排名第10的学生姓名

这样:

select * from

(select top 10 id,score

from table

order by score) a

where a.id not in (select top 9 id from table order by score)

(5)sql第10名的分数查询扩展阅读:

注意事项

SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。

:语法

SELECT 列名称 FROM 表名称

以及:

SELECT * FROM 表名称

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:

SELECT LastName,FirstName FROM Persons

⑥ 怎么用sql查询班级前十名成绩的同学的姓名和分数(成绩相同的学生算同一个名次)

select name,score from (

select name,score,dense_rank() over(order by score) "row" from t )
where "row"=10

⑦ sql查询 从一张表中找到每个班成绩排在第十名的信息。

--按成绩降序排列 取前10个即可
select a.number,b.class,b.score from st_score as a
join (
select top(1) t.class,t.score from (
select top 10 class,score from st_score
group by class
order by score desc) as t order by t.score) as b
on a.class=b.class and a.score=b.score
order by b.class,b.score desc

⑧ sql查询排名总分前十的学生姓名!

SELECT * FROM (SELECT 班级,姓名,SUM(分数) 总分数,ROW_NUMBER() OVER(PARTITION BY 班级 ORDER BY SUM(分数) DESC) 班级名次 FROM 表名 GROUP BY 班级,姓名) T WHERE 班级名次<=10 ORDER BY 班级,班级名次

⑨ SQL查询成绩为第10到15名的学生全部信息

select top 5 * from students where id not in(select top 10 id from students) order by score asc (排序根据倒叙还是顺序自己定,如果order by 语句不对,你试试换个顺序,很久没写,记不太清)

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

学生表名为: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;

(10)sql第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 c.Cname, MAX(s.Score) AS Max, MIN(s.Score) AS Min, AVG(s.Score) AS Average

FROM Course c JOIN SC s ON c.Cid = s.Cid

GROUP BY c.Cname

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


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

[sql]

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

ON Student.Sid=SC.Sid

GROUP BY Sname

HAVING AVG(Score)>80

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

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

[sql]

SELECT RANK() OVER (ORDER BY SUM(ss.Score) DESC) AS Rank, s.Sname,

ISNULL(SUM(ss.Score),0)

FROM Student s LEFT JOIN SC ss

ON s.Sid = ss.Sid

GROUP BY s.Sname

ORDER BY SUM(ss.Score) DESC

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

RANK() OVER ( [ partition_by_clause ] order_by_clause ).*/

5. 查询总分在100至200之间的学生姓名及总分

[sql]

SELECT s.Sname,SUM(ss.Score) FROM Student s JOIN SC ss ON s.Sid=ss.Sid

GROUP BY s.Sname HAVING SUM(ss.Score) BETWEEN 100 AND 200