SQL 如何实现这个复杂一点的分组统计???
我的一个数据表中有这些资料
病历号 姓名 主治医生 科室 分类
01 张三 洪医生 1科 白内障
02 李四 胡医生 2科 白内障
01 张三 秦医生 1科 青光眼
01 张三 赵医生 2科 白内障
02 李四 徐医生 2科 综合
我想用SQL统计出这样的效果
科室 分类 病例数
1科 白内障 2
1科 青光眼 1
2科 白内障 1
2科 综合 1
[解决办法]
SELECT 科室, 分类, 病例数 = COUNT(*)
FROM 你的表
GROUP BY 科室, 分类,
[解决办法]
select
科室 , 分类 , Count(distinct 病历号) as 病例数
from table01
group by 科室 ,分类
[解决办法]
病历号 姓名 主治医生 科室 分类
01 张三 洪医生 1科 白内障
02 李四 胡医生 2科 白内障
01 张三 秦医生 1科 青光眼
01 张三 赵医生 2科 白内障
02 李四 徐医生 2科 综合
select 科室, 分类 ,count(*)as 病例数 from 表 group by 科室, 分类
[解决办法]
create table #talbebing(
病历号 varchar(10),
姓名 varchar(10),
主治医生 varchar(10),
科室 varchar(10),
分类 varchar(10)
)
insert into #talbebing select
'01 ' , '张三 ' , '洪医生 ' , '1科 ' , ' 白内障 ' union all select
'02 ' , ' 李四 ' , '胡医生 ' , ' 2科 ' , '白内障 'union all select
'01 ' , ' 张三 ' , '秦医生 ' , '1科 ' , '青光眼 'union all select
'01 ' , ' 张三 ' , '赵医生 ' , ' 2科 ' , '白内障 'union all select
'02 ' , '李四 ' , '徐医生 ' , ' 2科 ' , ' 综合 '
select 科室,分类,count(* ) from #talbebing group by 科室,分类 order by count(* ) desc
drop table #talbebing