У меня есть этот запрос, который корректно работает в MySQL. Подробнее об этом здесь.
SELECT c.*, SUM(ABS(v.vote)) AS score
FROM categories c,items i, votes v
WHERE c.id = i.category_id
AND i.id = v.voteable_id
AND v.created_at > '#{1.week.ago}'
GROUP BY c.id
ORDER BY score DESC LIMIT 8;
Я попытался запустить его в PostgreSQL, и с этим сообщением об ошибке оно не получило.
PGError: ОШИБКА: столбец "c.name" должен появляются в предложении GROUP BY или используется в агрегатной функции
Я не был уверен, что это значит, поэтому я попытался изменить "c.id" на "c.name" в предложении group by (оба работают в MySQL одинаково, при условии, что имя элемента уникально).
Однако это только что вызвало другую аналогичную ошибку
PGError: ОШИБКА: столбец "c.id" должен появляются в предложении GROUP BY или используется в агрегатной функции
Как решить эту проблему?