我知道我之前见过这个,但现在找不到任何东西。我想按特定列对查询进行分组,并能够显示每个组中的查询数量。我得到了第一部分:
@line_items = @project.line_items.all(:group => "device_id")
这是我的订单项索引视图,它只是一个显示订单项的表格。现在,如果订单项按设备分组,如何在该表中创建“计数”列?
答案 0 :(得分:100)
您可以在count
上执行line_items
,这会返回device_id
和count
的有序哈希值。
@project.line_items.group(:device_id).count
答案 1 :(得分:10)
将devise_id的哈希值作为键和相关记录计数
@project.line_items.group(:devise_id).count
答案 2 :(得分:8)
只需添加:select
选项:
@line_items = @project.line_items.all(
:group => "device_id",
:select => "device_id, COUNT(*) as count"
)
然后每个@line_item
都会有count
属性。
答案 3 :(得分:3)
类似
User.all(:joins => :comments, :select => "users.*, count(comments.id) as comments_count", :group => "users.id")
也可能有用......
答案 4 :(得分:2)
仅计算采摘会更快,而不是群组
hbase
答案 5 :(得分:2)
我想你也可以试试这个。
@project.line_items.group(:device_id).pluck("device_id, count(device_id)")
^^这给出了具有元素'device_id和count'
的数组答案 6 :(得分:0)
提交后:
https://github.com/rails/rails/commit/a1c05dd8b9bd3623289d3aa73dda2943d620cc34
有一种新方法可以做同样的事情:
@project.line_items.count(:group => LineItem.arel_table[:device_id])