计算 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,你可以去看看。

https://www.db-fiddle.com/f/qytaC3augXijw956ReuYqb/1