Как использовать postgres group by Statement при объединении таблиц - PullRequest
0 голосов
/ 24 июня 2018

У меня очень простой запрос, который я хочу выполнить в postgres. Таблица1 имеет отношение один к маю к таблицам2 и 3.

псевдопросмотр выглядит следующим образом

select * from table1
  left join table2 ON table2.table1_id = table1.id
    left join table3 ON table3.table1_id = table1.id
group by table1.id

Это дает мне ошибку: "column" table2.id "должно присутствовать в предложении GROUP BY или использоваться в статистической функции", то же самое для table3.id

В чем смысл Group by, если она заставляет меня добавлять идентификаторы всех таблиц в group by, тем самым побеждая группу по назначению (все идентификаторы уникальны и группировка не происходит)

1 Ответ

0 голосов
/ 24 июня 2018

Цель group by - суммировать данные.В наборе результатов есть одна строка для каждой комбинации ключей в group by.

. Столбцы в наборе результатов являются либо ключами в group by, либо являются агрегатами.Из этого правила есть одно исключение: группировка по уникальным или первичным ключам в таблице и использование других столбцов.

Использование select * с group by просто не является правильным использованием агрегирования в SQL.

Кажется, вы неправильно понимаете цель этой конструкции.Вполне возможно, что вы действительно имеете в виду order by - это упорядочит набор результатов с помощью клавиш order by без изменения (т. Е. Суммирования) количества строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...