查询多人各自成绩的总和sql语句如下:
select name,SUM(score)
from test2
group by name
按姓名分组,查看每个学生的优良中差统计:
SELECT sname, count(snum) 总数,
sum(case when snum<60 then 1 else 0 end) AS 不合格,
sum(case when snum>=60 AND snum<70 then 1 else 0 end) AS 中,
sum(case when snum>=70 AND snum<90 then 1 else 0 end) AS 良,
sum(case when snum>=90 then 1 else 0 end) AS 优
FROM test.Score
group by sname
扩展资料
SQL中Group By的使用:
“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
示例:
select 类别, sum(数量) as 数量之和
from A
group by 类别
这段代码实际上就是分类汇总。
在Access中不可以使用“order by 数量之和 desc”,但在SQL Server中则可以。
需要注意的一点,在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。
按照人名查出学生的各科成绩以及总成绩并按总成绩排名的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'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)