1

この最初の squeel クエリは、私が期待するものを提供します。つまり、指定された見積もりに対して最高のシーケンスを持つすべての QuoteStops です。

QuoteStop.joins{quote}.group{quote.id}.having{sequence == max(sequence)}.pluck("quote_stops.sequence")

SELECT quote_stops.sequence FROM "quote_stops" INNER JOIN "quotes" ON "quotes"."id" = "quote_stops"."quote_id" GROUP BY "quotes"."id" HAVING "quote_stops"."sequence" = max("quote_stops"."sequence")

[2, 3 ... 2]

しかし、having 句の比較を<SQL に変更すると、正しいように見えますが、最高のシーケンスを持たないすべての QuoteStops になりたい場合、結果は空のリストになります。

QuoteStop.joins{quote}.group{quote.id}.having{ sequence < max(sequence) }.pluck("quote_stops.sequence")

SELECT quote_stops.sequence FROM "quote_stops" INNER JOIN "quotes" ON "quotes"."id" = "quote_stops"."quote_id" GROUP BY "quotes"."id" HAVING "quote_stops"."sequence" < max("quote_stops"."sequence")

[]

私は何が欠けていますか?Squeel または ActiveRecord の回答は問題ありません。

4

0 に答える 0