My data set has a weight column and a variable of interest var1, for which I need to form a weighted average of all rows that satisfy either var1=1 and var1=2. Unfortunately I need to do this in SQL, where I have very limited knowledge. To compute the weighted average of all rows, I would write SUM(var1 * weight)/SUM(weight). But how can I do this computation for all rows where var1 IN (1,2)?
>Solution :
It seems like what you’re looking for would be the following:
SELECT SUM(var1 * weight) / SUM(weight)
FROM sample
WHERE var1 in (1,2)
I created a dbfiddle where you can go and check it out.
https://www.db-fiddle.com/f/qytaC3augXijw956ReuYqb/1