У меня есть область действия на одной из моих моделей, где я использую сырой SQL (Postgres).Это выглядит так:
scope :with_rating, lambda {
select <<~SQL
sellers.*, ROUND(SUM(average_score * total_reviews) / SUM(total_reviews)) AS seller_rating, SUM(total_reviews) AS total_reviews
FROM (
SELECT
(products.meta -> 'yotpo_bottom_line' ->> 'average_score')::numeric AS average_score,
(products.meta -> 'yotpo_bottom_line' ->> 'total_reviews')::numeric AS total_reviews,
sellers.*
FROM sellers
INNER JOIN products ON products.seller_id = sellers.id
) t JOIN sellers ON sellers.id = t.id
GROUP BY sellers.id
SQL
}
Однако, когда я пытаюсь его использовать, после GROUP BY
Rails добавляется еще одна строка:
FROM "sellers" WHERE "sellers"."deleted_at" IS NULL AND "sellers"."id" = 1063 LIMIT 1;
Который выбрасывает:
ERROR: syntax error at or near "FROM"
LINE 11: FROM "sellers" WHERE "sellers"."deleted_at" IS NULL AND "sel...
^