我有一个表,其中列B,C和D可以被视为标识符,列E - I是值.根据标识符将存在一些非唯一的行,即B,C和D的值与某些其他行的值匹配(可能多于一行匹配).
我想要一个返回所有行的查询,除了那些非唯一的行.在这些情况下,我希望只返回一行,它们的值相加,但有一个例外,列E.这应该是关于列F的加权平均值,即对于每个匹配的行,返回的值应该是E的总和*F/F的总和
例如
E, F
7, 1
9, 4
E = (7*1 + 9*4)/(1+4) = 8.6
Run Code Online (Sandbox Code Playgroud)
我可以使用什么查询来返回所需的结果集?
非常感谢所有帮助!
我认为应该这样做:
select B, C, D, sum(E*F) / sum(F), sum(F), sum(G), sum(H), sum(I)
from MyTable
group by B, C, D
Run Code Online (Sandbox Code Playgroud)