SQL 服务器计算一组中的百分比

SQL Server calculating percentage with in a group

我有一个临时的 table 给了我这些结果。

Question      Option    TotalUsers 
Question1    Q1Option1    4             
Question1    Q1Option2    0              
Question1    Q1Option3    4                           
Question1    Q1Option4    0              
Question2    Q2Option1    2             
Question2    Q2Option2    2             
Question2    Q2Option3    2             
Question2    Q2Option4    2          

查询

SELECT Question, Option, TotalUsers FROM @TemporaryResultTable

我需要计算 TotalUsers 在 TotalUsers 中的百分比,在该问题中它意味着按该问题分组,如下所示。

下面的方法试过了,还是不行。

SELECT Question, Option, TotalUsers, SUM([TotalUsers]) * 100/NULLIF(SUM([TotalUsers]), 0) OVER (PARTITION BY Question) AS 'Percentage' FROM @TemporaryResultTable 
GROUP BY Question, Option, TotalUsers

对此有任何帮助

您可以使用 window 函数:

select question, option, totalusers,
    100.0 * totalusers / sum(totalusers) over(partition by question) as percentage
from @temporaryresulttable