我正在尝试将窗口功能与group by组合用于以下功能。鉴于下表:
Table a
ID1 ID2 Value1 Value2
1 1 2 2
1 1 3 2
1 1 2 4
1 2 1 2
这里,我首先要计算每个ID1和ID2组合的value3,即sum(value2)* sum(value2),如下所示:
Table a
ID1 ID2 Value1 Value2 Value3
1 1 2 2 64
1 1 3 2 64
1 1 2 4 64
1 2 1 2 4
然后按ID1分组以计算结果总和(value1 * value3),例如
Result
ID1 Result
1 452
我开始尝试在此处实现此查询(http://sqlfiddle.com/#!9/9da0cf/6),但找不到正确的解决方案。
是否有可能在没有子查询的情况下在一个查询中计算这个?
答案 0 :(得分:0)
这应该做你想要的:
pyuic5.bat
注意:您可以使用select id1, sum(val1 * val3)
from (select t.*,
sum(val2) over (partition by id1, id2) * sum(val2) over (partition by id1, id2) as val3
from t
) t
group by id1;
而不是" self"乘法。