【问题标题】:SQL Server calculating percentage with in a groupSQL Server 计算组中的百分比
【发布时间】:2021-03-16 19:11:00
【问题描述】:

我有一个临时表,可以提供这些结果。

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

任何帮助

【问题讨论】:

    标签: sql sql-server count aggregate-functions percentage


    【解决方案1】:

    你可以使用窗口函数:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多