按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句

 我来答
妖感肉灵10
2022-12-02 · TA获得超过6.3万个赞
知道顶级答主
回答量:101万
采纳率:99%
帮助的人:2.3亿
展开全部

按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句示例如下:

select A.name,

(select B.score from table_score B where B.type='数学' and A.id=B.id)as 数学,

(select B.score from table_score B where B.type='语文' and A.id=B.id)as 语文,

(select B.score from table_score B where B.type='英语' and A.id=B.id) as 英语,

(select SUM(B.score) from table_score B where A.id=B.id) as sum_score

from table_student A order by  sum_score DESC

以上sql语句首先把学生表和成绩表联合查出每个学生的数学、语文、英语成绩,然后通过select SUM(B.score) from table_score B where A.id=B.id查出每个学生的总成绩。

最后order by  sum_score DESC实现按总成绩倒叙排列。

/iknow-pic.cdn.bcebos.com/5d6034a85edf8db1650ea8660623dd54564e7494"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/5d6034a85edf8db1650ea8660623dd54564e7494?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/5d6034a85edf8db1650ea8660623dd54564e7494"/>


扩展资料

上述sql语句重点是对as关键字的使用-Alias(别名),通过使用SQL,可以为列名称和表名称指定别名(Alias)。

表的SQLAlias语法

SELECTcolumn_name(s)FROMtable_nameASalias_name;

列的SQLAlias语法

SELECTcolumn_nameASalias_nameFROMtable_name;

Alias实例:使用表名称别名

假设我们有两个表分别是:"Persons"和"Product_Orders"。我们分别为它们指定别名"p"和"po"。

现在,我们希望列出"JohnAdams"的所有定单。

我们可以使用下面的SELECT语句:

SELECTpo.OrderID,p.LastName,p.FirstNameFROMPersonsASp,Product_OrdersASpoWHEREp.LastName='Adams'ANDp.FirstName='John'

lxlyq888you
2019-10-05 · TA获得超过1727个赞
知道答主
回答量:45
采纳率:0%
帮助的人:5723
展开全部

按照人名查出学生的各科成绩以及总成绩并按总成绩排名的sql语句示例如下:

select A.name ,

(select B.score from table_score B where B.type='数学' and A.id=B.id) as 数学 ,

(select B.score from table_score B where B.type='语文' and A.id=B.id) as 语文,

(select B.score from table_score B where B.type='英语' and A.id=B.id) as 英语,

(select SUM(B.score) from table_score B where A.id=B.id) as sum_score

from table_student A order by  sum_score DESC

以上sql语句首先把学生表和成绩表联合查出每个学生的数学、语文、英语成绩,然后通过select SUM(B.score) from table_score B where A.id=B.id查出每个学生的总成绩。

最后order by  sum_score DESC实现按总成绩倒叙排列。


扩展资料

上述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" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。

现在,我们希望列出 "John Adams" 的所有定单。

我们可以使用下面的 SELECT 语句:

SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-01
展开全部

/*      

        create table 学生表(

        学号 nvarchar(100) null,

        姓名 nvarchar(100) null)

        

        create table 成绩表(

         学号 nvarchar(100) null,

        科目 nvarchar(100) null,

        成绩 decimal(10,1) null

        )

        

        insert into 学生表 values('101','张三')

        insert into 学生表 values('104','李四')

        insert into 学生表 values('107','王五')

        insert into 学生表 values('111','任六')

        

        insert into 成绩表 values('101','语文',90)

        insert into 成绩表 values('101','数学',91)

        insert into 成绩表 values('101','英语',92)

        insert into 成绩表 values('101','政治',93)

        

        insert into 成绩表 values('104','语文',96)

        insert into 成绩表 values('104','数学',70)

        insert into 成绩表 values('104','英语',80)

        insert into 成绩表 values('104','政治',92)

        

        insert into 成绩表 values('107','语文',70)

        insert into 成绩表 values('107','数学',100)

        insert into 成绩表 values('107','英语',90)

        insert into 成绩表 values('107','政治',98)

        

        insert into 成绩表 values('111','语文',97)

        insert into 成绩表 values('111','数学',90)

        insert into 成绩表 values('111','英语',99)

        insert into 成绩表 values('111','政治',99)        

        */

        select A.姓名

        ,(select B.成绩 from 成绩表 B where B.科目='语文' and A.学号=B.学号) as 语文

        ,(select B.成绩 from 成绩表 B where B.科目='数学' and A.学号=B.学号) as 数学

        ,(select B.成绩 from 成绩表 B where B.科目='英语' and A.学号=B.学号) as 英语

        ,(select B.成绩 from 成绩表 B where B.科目='政治' and A.学号=B.学号) as 政治

         ,(select SUM(B.成绩) from 成绩表 B where A.学号=B.学号) as 总成绩

        from 学生表 A order by 总成绩 DESC


查询结果:

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我们给乌龟建造一个美好的家园吧
2015-02-26
知道答主
回答量:3
采纳率:0%
帮助的人:2.4万
展开全部
--StudentName == 人名
--Score == 科目成绩

select A.*, B.总成绩,ROW_NUMBER() OVER (ORDER BY B.总成绩 DESC)
from <表> as A
inner join (
select 人名, sum(科目成绩) as '总成绩' from <表> group by 人名
) as B on A.人名 = B.人名
order by 3 desc
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式