Select 与总和最高的主 ID 相关联的子类别 ID

Select a subcategory ID to associate with a primary ID based off which has the highest sum

我有一个主 ID ID1 和一个辅助 ID ID2。 ID1 可以与多个 ID2 值关联,反之亦然。我想在每个 ID1 下按 ID2 对第三个值列求和,并拉出总和最高的 ID2。源数据的结构如下:

ID1     ID2     Value
1       10      1
1       10      2
1       20      1
2       10      1
2       30      2

我希望最终结果如下所示:

ID1     ID2
1       10
2       30

到目前为止,我只有一个不起作用的查询:

SELECT  ID1,
        CASE    WHEN ID2_Value = MAX(ID2_Value) THEN ID2
                ELSE NULL
                END AS PrimaryID2
FROM (  SELECT  ID1,
                ID2,
                SUM(Value) AS ID2_Value
        FROM SOME_SCHEMA
        GROUP BY ID1, ID2
       ) AS ID2_Value
GROUP BY ID1;

我的查询现在不起作用,因为它希望我在 GROUP BY 语句中包含 ID2_Value,但我不想按这些值进行分组。

我会用 row_number():

select id1, id2
from (select id1, id2, sum(value) as sumv,
             row_number() over (partition by id1 order by sum(value) desc) as seqnum
      from t
      group by id1, id2
     ) t
where seqnum = 1;