需要用group by语句来统计。
1、创建测试表、插入数据:
create table test(id int,
name varchar(10),
score int,
classname varchar(20))
insert into test values (1,'张三',100,'一班')
insert into test values (2,'李四',89,'一班')
insert into test values (3,'王五',97,'一班')
insert into test values (4,'赵六',87,'二班')
insert into test values (5,'孙七',94,'二班')
insert into test values (6,'杨八',76,'二班')
2、查询每个班级的总分,可用如下语句:
select classname,SUM(score) as 总分 from test group by classname3、结果截图:
在group by之后不能使用where,只能使用having,在group by之前可以使用where,即表示对过滤后的结果分组select sname,sum(score) from s_k group by sname
select count(distinct sname) from s_k
select sname,avg(score) from s_k group by sname
select kname,avg(score),max(score),min(score) from s_k group by kname
联接最简单select 科室,sum(数量)
where 药品.名称='青霉素'
and 医生.编号 = 处方.医生编号
and 处方.药品编号 = 药品.编号
group by 科室
你要求不连接单表
declare @药编号 int
select @药编号=编号 from 药品 where 名称='青霉素'
select 科室,
sum((select 数量 from 处方 where 医生编号=医生.编号 and 药品编号=@药编号))
from 医生
group by 科室
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)