Mysql 如何仅对具有正付款总额的记录进行分组?
我在Rails 5/MySQL支持的应用程序中有一个SQL查询,它根据人们的付款总额对人进行分组Mysql 如何仅对具有正付款总额的记录进行分组?,mysql,ruby-on-rails,activerecord,group-by,Mysql,Ruby On Rails,Activerecord,Group By,我在Rails 5/MySQL支持的应用程序中有一个SQL查询,它根据人们的付款总额对人进行分组 @people = Person.joins(:payments) .where(:payments => {:date => @range}) .order("sum_payments_total DESC") .group(:id) .sum("paymen
@people = Person.joins(:payments)
.where(:payments => {:date => @range})
.order("sum_payments_total DESC")
.group(:id)
.sum("payments.total")
我正在使用这个结果使用chart.js构建一个饼图
问题是饼图需要正数才能有意义
因此,在上面的查询中,是否有一种方法只对那些支付的人进行分组。总计大于0
我可能会相应地更改数组,但在SQL中这样做会更好。我认为您可以使用
我还没有测试过,所以我不知道我添加到您代码中的where子句add where PAYMENTS>0中是否完全正确。在查询中使用HAVING PAYMENTS>0这样的子句,我这样做时就可以了。
。HAVING(“sum\U PAYMENTS\U TOTALL>0”)
。谢谢
@people = Person.joins(:payments)
.where(:payments => {:date => @range})
.order("sum_payments_total DESC")
.group(:id)
.having("payments.total > 0")
.sum("payments.total")