--測試數據
DECLARE @t TABLE(ID int PRIMARY KEY,col decimal(10,2))
INSERT @t SELECT 1 ,26.21
UNION ALL SELECT 2 ,88.19
UNION ALL SELECT 3 , 4.21
UNION ALL SELECT 4 ,76.58
UNION ALL SELECT 5 ,58.06
UNION ALL SELECT 6 ,53.01
UNION ALL SELECT 7 ,18.55
UNION ALL SELECT 8 ,84.90
UNION ALL SELECT 9 ,95.60
--統計
SELECT a.Description,
?Record_count=COUNT(b.ID),
?[Percent]=CASE
??WHEN Counts=0 THEN '0.00%'
??ELSE CAST(CAST(
???COUNT(b.ID)*100./c.Counts
???as decimal(10,2)) as varchar)+'%'
??END
FROM(
?SELECT sid=1,a=NULL,b=30? ,Description='<30' UNION ALL
?SELECT sid=2,a=30? ,b=60? ,Description='>=30 and <60' UNION ALL
?SELECT sid=3,a=60? ,b=75? ,Description='>=60 and <75' UNION ALL
?SELECT sid=4,a=75? ,b=95? ,Description='>=75 and <95' UNION ALL
?SELECT sid=5,a=95? ,b=NULL,Description='>=95'
)a LEFT JOIN @t b
?ON (b.col<a.b OR a.b IS NULL)
??AND(b.col>=a.a OR a.a IS NULL)
?CROSS JOIN(
??SELECT COUNTS=COUNT(*) FROM @t
?)c
GROUP BY a.Description,a.sid,c.COUNTS
ORDER BY a.sid
/*--結果:
Description??? Record_count? Percent
------------------- ------------------ ----------------------
<30????????? 3??????????? 33.33%
>=30 and <60? 2??????????? 22.22%
>=60 and <75? 0??????????? 0.00%
>=75 and <95? 3??????????? 33.33%
>=95???????? 1??????????? 11.11%
--*/
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
