私が持っているのは、カテゴリを表すいくつかの列を持つ Skus モデル/テーブルです。メジャー、マイナー、マイクロ形式でバージョン番号を記述するために使用される 3 つの列もあります。
3 つの Sku カテゴリに基づいて、各 Sku の最上位バージョンを選択したいと思います。
最初に MAX と 'group' を使用してみましたが、3 つのバージョン番号列 (0 0 5 は 0 1 0 より大きいと見なされます) ではうまくいきませんでした。そこで、3 つのバージョン列で「order by」を使用してから、「group by」で「select」を実行すると、必要な結果が得られました。
SELECT * FROM
(
SELECT *
FROM skus
WHERE category1_id = 3
ORDER BY ver_major, ver_minor, ver_micro
)
GROUP BY category2_id, category3_id, category4_id
私が疑問に思ったのは、これは特に非効率的ですか(ネストされた選択などのために)?
そして最も重要なことは、Rails ActiveRecord を使用して、この (またはより良い) クエリをどのように作成すればよいでしょうか?
助けてくれてありがとう