Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何仅对具有正付款总额的记录进行分组?_Mysql_Ruby On Rails_Activerecord_Group By - Fatal编程技术网

Mysql 如何仅对具有正付款总额的记录进行分组?

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

我在Rails 5/MySQL支持的应用程序中有一个SQL查询,它根据人们的付款总额对人进行分组

@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")