数据库中如何分类、分组并总计SQL数据

数据库中如何分类、分组并总计SQL数据,第1张

需要用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 classname

3、结果截图:

在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(数量)

from 医生,处方,药品

where 药品.名称='青霉素'

and 医生.编号 = 处方.医生编号

and 处方.药品编号 = 药品.编号

group by 科室

你要求不连接单表

declare @药编号 int

select @药编号=编号 from 药品 where 名称='青霉素'

select 科室,

sum((select 数量 from 处方 where 医生编号=医生.编号 and 药品编号=@药编号))

from 医生

group by 科室


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9845188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存