У меня есть основной идентификатор ID1 и дополнительный идентификатор ID2. ID1 может быть связан с несколькими значениями ID2, и наоборот. Я хочу суммировать третий столбец значений по ID2 под каждым ID1 и потянуть 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;
Мой запрос сейчас не работает, потому что он ожидает, что я включу ID2_Value в оператор GROUP BY
, но я не хочу группировать по этим значениям.