Как приблизиться к GROUP BY в PostgreSQL, используя Rails? - PullRequest
6 голосов
/ 28 декабря 2010

У меня есть приложение Rails 3, которое сохраняет высокие оценки. Я размещаю его на Heroku, который использует postgresql в качестве базы данных.

Мне нужно извлечь лучшие результаты из таблицы результатов. В таблице есть столбцы score и user_id. Он работал в MySQL со следующим:

Score.order('score DESC').group('user_id').limit(25)

Это рейтинг каждого пользователя.

Когда я помещаю приложение в Heroku, я получаю следующую ошибку psql PGError: ERROR: column "scores.id" must appear in the GROUP BY clause or be used in an aggregate function

Я читал вокруг, но не нашел четкого ответа. Каков наиболее оптимальный способ воссоздания вышеуказанного запроса для работы с PostgreSQL?

Спасибо!

Тим

Ответы [ 2 ]

2 голосов
/ 28 декабря 2010

Это означает, что ваш запрос на выборку выбирает столбец «id», но не включает его в предложение group by. Я не знаком с рельсами, но может ли он выбирать * или все столбцы?

0 голосов
/ 28 декабря 2010

Не могли бы вы сделать

select id, max(score) group by id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...