@counseling = Counseling.ransack(params[:q])
@counselings = @counseling.result.joins('RIGHT JOIN "subjects" ON "subjects"."id" = "counselings"."subject_id"')
@result = {}
@result[:data] = @counselings.group(row_condition).count
块引用红宝石如何强制输出0时计数没有行
def self.create_case_sql_for_nested_tree2(foreign_key)
modelClass = foreign_key.sub(/_id3$/, '').camelize.constantize
@when_then_conditions = modelClass.roots.map do |o|
o.children.map do |c|
c.children.map do |g|
idlist = g.self_and_descendants.pluck(:id)
"WHEN subject_id IN(#{idlist.join(',')}) THEN #{g.id}"
end
end
end
"CASE #{@when_then_conditions.join(' ')} ELSE null END"
end
你能更准确的了解您的问题。因为如果没有找到行,count通常会返回0。 –
select s.id,count(nullif(subject_id,0))来自counselings的AS计数c right加入对象s on c.subject_id = s.id group by s.id order by s.id; – Poo
当我执行上面的SQL输出显示0计数的记录但我不知道如何在红宝石中实现相同。 – Poo