如何在有效查询中执行此类操作?
select product.*, count(product_id) AS product_counts
group by(product.*)
order by product_counts;
我在主动查询中尝试了这个:
Product.select("product fields, count(product_id) AS product_counts").group("product fields").order(product_counts)
我得到的结果集仅包含按正确的计数顺序排序的产品,但没有计数值。我做了一个.to_sql,它返回正确的sql。
如果在db上有效率的话,我该怎么做呢?
另一个相关问题是,如何在有效查询中执行.select("product.*)
或.group("product.*")
?现在我必须列出每个字段,例如。 .group("product.id, product.name, product.price...etc")
答案 0 :(得分:0)
@Kevin,
实际上你要回到product_counts唯一需要注意的是虚拟属性不会显示在控制台中,所以如果你有:
products = select product.*, count(product_id) AS product_counts
group by(product.*)
order by product_counts;
#You can access the product_counts just as you would expect
products.first.product_counts
问题2: 不确定您要使用组(“product。*”)尝试实现的目标,如果您想获得不同的行,可以在选择中使用DISTINCT,例如Product.select(“DISTINCT *”)