我有一个包含列id和a1的表。
id a1
1 b2
1 b1
2 b1
1 b3
2 b2
sql中的查询是 -
select id, count(*) as TOTAL from table where a1 in (b1, b2) group by(id, a1) having count(*) > 1
我必须在记录界面中编写此查询 -
Table.select(:id).where(:a1 => 'b1').group(:id, :a1).count.having(count>1)
我收到以下错误 -
NameError: undefined local variable or method `count' for main:Object
如何解决此错误。
注意 - 我必须在其中包含a1 = b1或a1 = b2,但由于我也遇到了错误,我将其删除了。
答案 0 :(得分:0)
你必须像这样传递它:
Table.select(:id).where(:a1 => 'b1').group(:id, :a1).having('count(*) > 1')
或更好:
Table.select(:id).where(:a1 => 'b1').group(:id, :a1).having('count(*) > ?', 1)
参考:#Having
另一方面,你不能group(:id, :a1).count.having
因count
返回哈希而不是ActiveRecord::Relation
。