bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

GROUP BY и перечесление полей?

Здравствуйте. Подскажите пожалуйста.
Если делать запрос непосредственно к таблице тогда не нужно в GROUP BY перечислять поля, достаточно только поля id

select * from "Statistics" group by id;

Но когда, делать такое к подзапросу, то уже нужно перечислять все поля

with st as (select * from "Statistics") 
  select * from st group by id;


SQL Error [42803]: ERROR: column "st.deviceId" must appear in the GROUP BY clause or be used in an aggregate function
  Position: 92


Подскажите пожалуйста, а можно ли как-то сделать что бы к подзапросу не перечислять все поля, а только поле id. Спасибо.
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Это functional dependency. Если планировщик сможет свести ваши подзапросы или cte к уникальному индексу - functional dependency позволит ограничиться указанием только полей этого уникального индекса.

Встречный вопрос: а зачем вам такая группировка вообще? Для приведённых запросов бесполезна и лишь вредна.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы