есть несколько тем об этом уже с принятыми ответами, но я не смог найти решение, основанное на них: например:
- Ruby on Rails: должен присутствовать в предложении GROUP BY или использоваться в агрегатной функции
- GroupingError: ОШИБКА: столбец должен присутствовать в предложении GROUP BY или использоваться в агрегатной функции
- PGError: ОШИБКА: столбец p.name должен присутствовать в предложении GROUP BY или использоваться в агрегатной функции
Мой запрос:
Idea.unscoped.joins('inner join likes on ideas.id = likes.likeable_id').
select('likes.id, COUNT(*) AS like_count, ideas.id, ideas.title, ideas.intro, likeable_id').
group('likeable_id').
order('like_count DESC')
Это хорошо при разработке с sqlite, но ломается на героку с PostgreSQL.
Ошибка:
PG::GroupingError: ERROR: column "likes.id" must appear in the GROUP BY clause or be used in an aggregate function
Если я поставлю likes.id в свою группу к тому времени, результаты не будут иметь смысла. Пробовал ставить группу перед select, но не помогает. Я даже попытался разделить запрос на две части. Нет радости. :(
Любые предложения приветствуются. ТИА!