Преобразование рельсов 3 MySQL-запроса для работы с PostgreSQL - PullRequest
0 голосов
/ 12 января 2012

Я понимаю, что селектор "group_by" по-разному понимается в MySQL и PostgreSQL, благодаря вопросам, размещенным здесь. Однако, как ни старайся, я не могу заставить следующий (казалось бы) простой запрос работать с базой данных Heroku (PostgreSQL), хотя он отлично работает в моей среде разработки MySQL:

@trans_by_trip = @user.transactions.order("date").sum(:amount_cents, :group => :trip_id)

Я прочитал, что при включении вычисления типа "сумма" group_by будет работать, но это не так. И я должен признать, что затрудняюсь перевести запрос в сырой SQL.

Большое спасибо за любую помощь.

1 Ответ

1 голос
/ 12 января 2012

transactions.order("date") - это пытается упорядочить транзакции по дате?если это так, то это не совсем совместимо с суммированием их с чем-то, что не включает дату.Поэтому попробуйте просто убрать это предложение?

вы можете запросить результаты, упорядоченные (в терминах SQL) min(date), которые будут возвращать результат для каждой поездки, заказанной first дата этой поездки.Или max(date) и т. Д. Если не указать min или max, результат будет неоднозначным, поэтому PostgreSQL отклоняет его.

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