我拥有的是一个 Skus 模型/表,它有几个代表类别的列。还有三列用于描述主要、次要、微格式的版本号。
我想根据三个 Sku 类别选择每个 Sku 的最高版本。
最初我尝试使用 MAX 和 'group',但在三个版本号列中效果不佳(0 0 5 被认为大于 0 1 0)。所以我在三个版本列上使用“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 编写这个(或更好的)查询?
谢谢你的帮助