Ari*_*ian 7 sql sql-server sql-server-2008
参考这个问题:
我如何在单个查询中获得记录计数的百分比,如下所示:
ItemId count Percent
------------------------------------
1 2 33.3
2 0 0
3 1 16.6
4 3 50.0
Run Code Online (Sandbox Code Playgroud)
谢谢
Mar*_*ith 13
COUNT(*) OVER() 给你总数.
编辑但实际上,您需要SUM(COUNT(MyTbl.ItemID)) OVER()对该列中的值进行求和.
SELECT Items.ItemID,
[count] = COUNT(MyTbl.ItemID),
[Percent] = 100.0 * COUNT(MyTbl.ItemID) / SUM(COUNT(MyTbl.ItemID)) OVER()
FROM (VALUES (1,'N1'),
(2,'N2'),
(3,'N4'),
(4,'N5')) Items(ItemID, ItemName)
LEFT JOIN (VALUES(1),
(1),
(3),
(4),
(4),
(4)) MyTbl(ItemID)
ON ( MyTbl.ItemID = Items.ItemID )
GROUP BY Items.ItemID
ORDER BY Items.ItemID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7452 次 |
| 最近记录: |