Postgres выбор различных значений в функции OVER () - PullRequest
1 голос
/ 13 марта 2020

Я хотел бы получить набор уникальных идентификаторов в виде массива.

Пример:

SELECT a.*, b.*, array_agg(a.id) OVER() as groups_ids 
FROM author a 
JOIN books as b

В данный момент я получаю кратное столько же author.id, сколько books принадлежит для author.

Как получить только разные идентификаторы?

Спасибо.

1 Ответ

1 голос
/ 13 марта 2020

Один из способов сделать это - без оконной функции:

SELECT a.*, b.*, array(select distinct a2.id from author a2) as groups_ids 
FROM author a 
  JOIN books as b on a.id = b.author_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...