Как вывести максимальные значения двух столбцов для каждого значения ключа (ключ в еще одном столбце? postgresql
У меня есть таблица tab из 3х столбцов (ниже пример заполнения):
key col1 col2
1 10 200
1 20 100
1 20 0
2 30 500
2 30 400
2 30 300
Мне нужно вывести в каждом столбце (col1, col2) максимальные значения для каждого значения ключа.
То есть ожидаемый ответ на примере такой:
key col1 col2
1 20 200
2 30 500
Я пробовал так. С использованием оконной функции в select:
create tab_ext as select
*,
max(col1) over (partition by key) as col1_max,
max(col2) over (partition by key) as col2_max
from tab;
Затем использовать distinct
select
distinct key, col1_max as col1, col2_max as col2
from tab_ext
Посоветуйте, пожалуйста, более лаконичный способ достичь результат