SQL: 医生 药品
1 感冒药
1 消炎药
1 消炎药
2 感冒药
2 消炎药
要求统计每个医生开了多少次药,开了多少次感冒药,感冒药占的比例有多少? 要求在一个表中体现!求sql语句!
结果应该是这样的:
医生 开药次数 开感冒药次数 开感冒药比列
1 3 1 33%
2 2 1 50%
1 感冒药
1 消炎药
1 消炎药
2 感冒药
2 消炎药
要求统计每个医生开了多少次药,开了多少次感冒药,感冒药占的比例有多少? 要求在一个表中体现!求sql语句!
结果应该是这样的:
医生 开药次数 开感冒药次数 开感冒药比列
1 3 1 33%
2 2 1 50%
from tb
group by 医生
DECLARE @t TABLE(d INT,p VARCHAR(10));
INSERT INTO @T SELECT 1,'感冒药'
UNION ALL SELECT 1,'消炎药'
UNION ALL SELECT 1,'消炎药'
UNION ALL SELECT 2,'感冒药'
UNION ALL SELECT 2,'消炎药'SELECT d,SUM(CASE WHEN p='感冒药' THEN 1 END ) AS 感冒药,COUNT(*) AS 药,SUM(CASE WHEN p='感冒药' THEN 1 END )*100.0/COUNT(*) 感冒药比例 FROM @T GROUP BY d
/*
(5 行受影响)
d 感冒药 药 感冒药比例
----------- ----------- ----------- ---------------------------------------
1 1 3 33.333333333333
2 1 2 50.000000000000
*/