计算 SQL 中选定行的加权平均值
Compute weighted average for selected rows in SQL
我的数据集有一个权重列和一个感兴趣的变量 var1,为此我需要对满足 var1=1 和 var1=2 的所有行形成加权平均值。不幸的是,我需要在 SQL 中执行此操作,我的知识非常有限。要计算所有行的加权平均值,我会写 SUM(var1 * weight)/SUM(weight)
。但是我怎样才能对 var1 IN (1,2)
?
的所有行进行计算呢?
您要找的似乎是以下内容:
SELECT SUM(var1 * weight) / SUM(weight)
FROM sample
WHERE var1 in (1,2)
我创建了一个 dbfiddle,你可以去看看。
我的数据集有一个权重列和一个感兴趣的变量 var1,为此我需要对满足 var1=1 和 var1=2 的所有行形成加权平均值。不幸的是,我需要在 SQL 中执行此操作,我的知识非常有限。要计算所有行的加权平均值,我会写 SUM(var1 * weight)/SUM(weight)
。但是我怎样才能对 var1 IN (1,2)
?
您要找的似乎是以下内容:
SELECT SUM(var1 * weight) / SUM(weight)
FROM sample
WHERE var1 in (1,2)
我创建了一个 dbfiddle,你可以去看看。