我使用SQL Server 2014和我有一個運行正常以下查詢:SQL語法總和計數列計算百分比分佈
USE MyDatabase
SELECT [Room Nights],
COUNT([Room Nights]) AS 'Count of RN'
FROM HOLDINGS2
GROUP BY [Room Nights]
輸出如下:
Room Nights Count of RN
1 3
4 10
5 6
7 25
現在我想顯示另一列給出Count of RN
的百分比分佈。因此,我的輸出需要是這樣的:
Room Nights Count of RN % Distribution
1 3 6.8
4 10 22.7
5 6 13.6
7 25 56.8
我看看下面的討論,試圖找出一個解決方案: percent distribution with counted values。
我想出了對現有代碼的以下修改,但它不起作用! % Distribution
列中只有零。
USE MyDatabase
SELECT [Room Nights],
COUNT([Room Nights]) AS 'Count of RN',
CAST(COUNT([Room Nights])/(SELECT COUNT([Room Nights])*100. FROM HOLDINGS2) AS DECIMAL (9,0)) AS '% Distribution'
FROM HOLDINGS2
GROUP BY [Room Nights]
基本上,% Distribution
柱應採取Count of RN
和由TOTAL Count of RN
劃分它。
這個,或者添加一個內部演員給分子或分母。我修改了ughai的原始答案*首先*將計數轉換爲十進制*然後*除以總數,這是有效的 - 但給你很大的精度,所以你需要四捨五入或有一個外部演員。 – Boris 2015-04-06 11:38:53
@jpw,只是一個小缺陷。你缺少條款組 – 2015-04-06 11:58:55
@GiorgiNakeuri感謝您的注意,忘記複製該。 – jpw 2015-04-06 12:15:25