简体   繁体   English

Rails计数多列的平均值,而不是分组依据

[英]Rails count sum avg for multiple columns, not group by

I'm new to Rails. 我是Rails的新手。

I know that 'group' on multiple columns is OK. 我知道多个列上的“组”都可以。 But I don't want that, I want count (or sum, or avg) on multiple columns. 但是我不想要那个,我想要在多列上计数(或求和,或平均)。

I know: 我知道:

issues = Issue.group(:tracker_id).count(:subject)

have the query: 有查询:

SELECT COUNT(`issues`.`subject`) AS count_subject, tracker_id AS tracker_id FROM `issues` GROUP BY tracker_id

But it only count one column 'subject'. 但是它仅计入一列“主题”。 I tried to add one more column (status_id) as 2 statements below, but they don't work: 我尝试在下面的2条语句中添加一列(status_id),但它们不起作用:

1. issues = Issue.group(:tracker_id).count(:subject).count(:status_id)

2. issues = Issue.group(:tracker_id).count(:subject, :status_id)

How can I do that? 我怎样才能做到这一点? Thank you. 谢谢。

Thanks to: group by + sum on multiple columns in rails 3 感谢: 在Rails的多个列上按+和求和

I can do with some SQL: 我可以使用一些SQL:

issues = Issue.group(:tracker_id)
        .select([:tracker_id, "COUNT(subject)", "COUNT(status_id)"])

Don't know is this the best? 不知道这是最好的吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM