приведенный ниже запрос работает в teradata, есть ли способ написать тот же запрос в postgresql?Я получаю сообщение об ошибке при запуске этого ppostgresql 10
select * from product qualify row_number() over (partition by product_key order by product_no) = 1;
Postgres имеет distinct on, что должно быть еще более производительным:
distinct on
select distinct on (product_key) p.* from product p order by product_key, product_no;
Обычно это лучший способ в Postgres - получить по одной строке на группу.
Вам нужен подзапрос:
select p.* from (select p.*, row_number() over (partition by product_key order by product_no) as seq from product p ) p where seq = 1;