首页 > 解决方案 > 调查问题的加权平均值

问题描述

我必须计算所有问题的加权平均值。

假设调查中有 22 个问题,其中有 1、2、3、4、5 和 NA 5 个选项。

例如,

3 人参加了调查(全部 22 个问题)

假设有 10 个 NA 响应(合并所有 3 个)。

所以,分母是:22*3 - 10 = 56

分子为:1*X1 + 2*X2 + 3*X3 + 4*X4 + 5*X5,其中,X1 + X2 + X3 + X4 + X5 = 56

如何在 SQL 中实现?

标签: sqlaggregate-functions

解决方案


你似乎在描述类似的东西:

select avg(case when r.response = '1' then 1
                when r.response = '2' then 2
                when r.response = '3' then 3
                when r.response = '4' then 4
                when r.response = '5' then 5
           end)  
from responses r
where r.response <> 'N/A'

推荐阅读