sql总成绩排名
① 按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句
按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句示例如下:
selectA.name ,
(selectB.scorefromtable_scoreBwhereB.type='数学'andA.id=B.id) as数学 ,
(selectB.scorefromtable_scoreBwhereB.type='语文'andA.id=B.id) as语文,
(selectB.scorefromtable_scoreBwhereB.type='英语'andA.id=B.id)as英语,
(selectSUM(B.score)fromtable_scoreBwhereA.id=B.id)assum_score
fromtable_studentAorderbysum_scoreDESC
以上sql语句首先把学生表和成绩表联合查出每个学生的数学、语文、英语成绩,然后通过selectSUM(B.score)fromtable_scoreBwhereA.id=B.id查出每个学生的总成绩。
最后orderbysum_scoreDESC实现按总成绩倒叙排列。
(1)sql总成绩排名扩展阅读
上述sql语句重点是对as关键字的使用- Alias(别名),通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
表的 SQL Alias 语法
SELECT column_name(s) FROM table_name AS alias_name;
列的 SQL Alias 语法
SELECT column_name AS alias_name FROM table_name;
Alias 实例: 使用表名称别名
假设我们有两个表分别是:"Persons" 和 "Proct_Orders"。我们分别为它们指定别名 "p" 和 "po"。
现在,我们希望列出 "John Adams" 的所有定单。
我们可以使用下面的 SELECT 语句:
SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Proct_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'
② 总成绩排名sql文
建表来
createtablea(idint,namevarchar2(10),subjectvarchar2(10),scoreint);
插入数据
insertintoavalues(1,'张三','语自文',100);
insertintoavalues(2,'张三','数学',100);
insertintoavalues(3,'张三','外语',100);
insertintoavalues(4,'李四','语文',95);
insertintoavalues(5,'李四','数学',95);
insertintoavalues(6,'李四','外语',95);
运行代码
selectrow_number()over(orderbyscoredesc)id,t.name,t.score
from
(selectname,sum(score)scorefromagroupbyname)t
结果截图
③ 求总成绩和排名的SQL语句
select 姓名,数学+语文+英语 from 表 order by 数学+语文+英语
④ sql查询排名总分前十的学生姓名!
SELECT * FROM (SELECT 班级自,姓名,SUM(分数) 总分数,ROW_NUMBER() OVER(PARTITION BY 班级 ORDER BY SUM(分数) DESC) 班级名次 FROM 表名 GROUP BY 班级,姓名) T WHERE 班级名次<=10 ORDER BY 班级,班级名次
⑤ 求一条sql语句,按照成绩降序排序,并显示名次,如123
SELECT
id,
read_total,
(
SELECT
COUNT(read_total)
FROM
t_circle_topic
WHERE
ct.read_total <= read_total
) AS rank
FROM
t_circle_topic AS ct
ORDER BY
read_total DESC
(5)sql总成绩排名扩展阅读抄
ORDER BY 语句用于袭对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
⑥ 求一条SQL语句查出三年级学生的总成绩排名:学生姓名,老师姓名,所属班级,总分,排名
求一条SQL语句查出三年级学生的总成绩排名:学生姓名,老师姓名,所属班级,总分,排名
select
学生表a.名称 as 学生姓名,
老师表b.名称 as 老师姓名,
班级表c.名称 as 所属班级,
总分表g.总分 as 总分,
rownum as 排名
from
(select
学生编号 as 学生编号,
sum(考试成绩) as 总分
from
成绩表f
group by 学生编号)总分表g
inner join
学生班级表d
on
学生班级表d.学生编号 = 总分表g.学生编号
inner join
老师班级表e
on
老师班级表e.班级编号 = 学生班级表d.班级编号
inner join
班级表c
on
班级表c.编号 = 老师班级表e.班级编号
inner join
学生表a
on
学生表a.编号 = 学生班级表d.学生编号
inner join
老师表b
on
老师表b.编号 = 老师班级表e.老师编号
where
班级表c.年级 = '三年级'
order by 总分表g.总分 desc
不同数据库取得rownum的方法不一样注意变下
⑦ 求sql文,按班级分组计算总分并排名
select 班级,姓名,sum(分数) from 表 group by 班级,姓名
望采纳!!
⑧ 1查询成绩表的总分数,平均分,最低分和最高分。用sql语句怎么写
1. 计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)
select name,sum(cast(score as bigint)) as allscore from stuscore group by name order by allscore desc
2. 计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩)
select stuid,name,sum(cast(score as bigint)) as allscore from stuscore group by stuid,name order by allscore desc
3. 计算每个人单科的最高成绩(要求显示字段: 学号,姓名,课程,最高成绩)
SELECT t1.stuid,t1.name,t1.subject,t1.score from stuscore t1,(SELECT stuid,max(score) as maxscore from stuscore group by stuid) t2 where t1.stuid=t2.stuid and t1.score=t2.maxscore
4. 计算每个人的平均成绩(要求显示字段: 学号,姓名,平均成绩)
select distinct t1.stuid,t1.name,t2.avgscore from stuscore t1,(select stuid,avg(cast(score as bigint)) as avgscore from stuscore group by stuid) t2 where t1.stuid=t2.stuid
⑨ 用sql server 对学生总成绩进行排名
分别倒序顺序排序取出5个
select top 5 * from 成绩表 order by 成绩 desc
select top 5 * from 成绩表 order by 成绩 asc
一条语句就把他版们连起来就权好了
select * from (select top 5 * from 成绩表order by 成绩 desc) as a
union all
select * from (select top 5 * from 成绩表order by 成绩 asc) as b
⑩ SQL server计算总分和平均分,排名问题
用以下语句
select
id,姓名,语文,数学,英语,物理回,化学,
(语文+数学+英语+物理+化学)As总分答,
((语文+数学+英语+物理+化学)/5)As平均分
from
成绩表
orderby总分desc
注意,不能用sum和avg。因为这些函数是针对不同行(记录)进行计算;而现在是对同一行的不同字段进行计算。