Используйте функцию array_agg с Ruby Object Mapper - PullRequest
0 голосов
/ 16 февраля 2019

Я переписываю некоторые запросы в моем приложении Rails для использования ROM.Первоначально у меня было несколько выбранных столбцов, добавленных в массив, например:

  offers = Offer.arel_table
  l1_select << offers[:finance_rate_cents].minimum.as("finance_rate_cents")
  l1_select << "array_agg(DISTINCT CAST(offer_type AS int)) AS offer_types"
  l1_select << offers[:score].maximum.as("score")
  Offer.select(l1_select).group(:car_series_id, :manufacturer_name, :car_series_name, :image_public_id)

Но теперь я хочу переписать это с помощью ROM.Я сделал большую часть выбора, но не могу понять это с помощью array_agg(DISTINCT... части.

Это мой существующий код:

select {
  [
    :car_series_id,
    :manufacturer_name,
    :car_series_name,
    :image_public_id,
    int::min(:finance_rate_cents).as(:finance_rate_cents),
    int::max(:score).as(:score),
  ]
}.group(:car_series_id, :manufacturer_name, :car_series_name, :image_public_id).to_a

Как я могу использовать array_agg в select здесь

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