34,594
社区成员
发帖
与我相关
我的任务
分享
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([省份] nvarchar(22),[地市] nvarchar(23),[医院] nvarchar(29),[病例] int,[死亡] int)
Insert #T
select N'安徽',N'黄山市',N'休宁县人民医院',1,0 union all
select N'安徽',N'六安市',N'霍邱县第一人民医院',1,0 union all
select N'安徽',N'芜湖市',N'芜湖市第二人民医院',3,0 union all
select N'北京',N'海淀区',N'北京大学第三医院',1,0 union all
select N'福建',N'福州市',N'长乐市第二医院',1,0 union all
select N'福建',N'福州市',N'福州市第一医院',1,0 union all
select N'福建',N'福州市',N'罗源县医院',4,0 union all
select N'福建',N'宁德市',N'蕉城区人民医院',6,0 union all
select N'福建',N'宁德市',N'宁德市闽东医院',4,0 union all
select N'福建',N'宁德市',N'宁德市医院',31,0 union all
select N'福建',N'宁德市',N'宁德市中医院',3,0 union all
select N'福建',N'宁德市',N'霞浦县医院',7,0 union all
select N'福建',N'泉州市',N'海都医院',1,0 union all
select N'福建',N'泉州市',N'惠安县医院',1,0 union all
select N'福建',N'厦门市',N'厦门市第三医院',2,0 union all
select N'福建',N'厦门市',N'厦门市海沧医院',1,0 union all
select N'福建',N'漳州市',N'东山县医院',1,0 union all
select N'福建',N'漳州市',N'云霄县医院',3,0 union all
select N'福建',N'漳州市',N'漳浦县医院',5,0
Go
--测试数据结束
SELECT 省份 ,
COUNT(DISTINCT 地市) AS 地市数量 ,
COUNT(1) AS 医院数量 ,
SUM(病例) AS 病例数量 ,
SUM(死亡) AS 死亡数量
FROM #T
GROUP BY 省份
--测试数据
if not object_id(N'Tempdb..#City') is null
drop table #City
Go
Create table #City([ID] int,[Name] nvarchar(22))
Insert #City
select 1,N'北京' union all
select 2,N'上海' union all
select 3,N'天津'
GO
if not object_id(N'Tempdb..#Unit') is null
drop table #Unit
Go
Create table #Unit([ID] int,[Name] nvarchar(22),[CIty_ID] int)
Insert #Unit
select 1,N'医院',1 union all
select 2,N'学校',1 union all
select 3,N'公司',2 union all
select 4,N'医院',3 union all
select 5,N'医院',2
Go
--测试数据结束
SELECT * FROM (
SELECT #City.Name AS 地区 ,
SUM(CASE WHEN #Unit.Name = '医院' THEN 1
ELSE 0
END) AS 医院数量 ,
SUM(CASE WHEN #Unit.Name = '学校' THEN 1
ELSE 0
END) AS 学校数量 ,
SUM(CASE WHEN #Unit.Name = '公司' THEN 1
ELSE 0
END) AS 公司数量 ,
COUNT(1) AS 合计
FROM #City
JOIN #Unit ON #City.ID = CIty_ID
GROUP BY #City.Name
UNION
SELECT '合计' ,
SUM(CASE WHEN #Unit.Name = '医院' THEN 1
ELSE 0
END) AS 医院数量 ,
SUM(CASE WHEN #Unit.Name = '学校' THEN 1
ELSE 0
END) AS 学校数量 ,
SUM(CASE WHEN #Unit.Name = '公司' THEN 1
ELSE 0
END) AS 公司数量 ,
COUNT(1) AS 合计
FROM #City
JOIN #Unit ON #City.ID = CIty_ID)t
ORDER BY 合计
--测试数据
if not object_id(N'Tempdb..#City') is null
drop table #City
Go
Create table #City([ID] int,[Name] nvarchar(22))
Insert #City
select 1,N'北京' union all
select 2,N'上海' union all
select 3,N'天津'
GO
if not object_id(N'Tempdb..#Unit') is null
drop table #Unit
Go
Create table #Unit([ID] int,[Name] nvarchar(22),[CIty_ID] int)
Insert #Unit
select 1,N'医院',1 union all
select 2,N'学校',1 union all
select 3,N'公司',2 union all
select 4,N'医院',3 union all
select 5,N'医院',2
Go
--测试数据结束
SELECT #City.Name AS 地区 ,
SUM(CASE WHEN #Unit.Name = '医院' THEN 1
ELSE 0
END) AS 医院数量 ,
SUM(CASE WHEN #Unit.Name = '学校' THEN 1
ELSE 0
END) AS 学校数量 ,
SUM(CASE WHEN #Unit.Name = '公司' THEN 1
ELSE 0
END) AS 公司数量
FROM #City
JOIN #Unit ON #City.ID = CIty_ID
GROUP BY #City.Name