【问题标题】:Group by with ActiveRecord in Rails在 Rails 中使用 ActiveRecord 进行分组
【发布时间】:2010-03-12 08:33:49
【问题描述】:

我有一个带有行的下表:

===============================================
id| name  | group1 | group2 | group3 | group4 |
===============================================
1 | Bob   | 1      | 0      | 0      | 1      |
===============================================
2 | Eric  | 0      | 1      | 0      | 1      |
===============================================
3 | Muris | 1      | 0      | 1      | 1      |
===============================================
4 | Angela| 0      | 0      | 0      | 1      |
===============================================

编辑: 在我看来,预期的结果如下,它会输出组名(group1,group2...大约有 30 个组),括号中是有多少用户对该组的值为 1 的计数。

group1 (2)
group2 (1)
group3 (1)
group4 (4)

感谢所有帮助。

【问题讨论】:

  • 你的问题不是很清楚。你能用预期的结果集更新问题吗?

标签: ruby-on-rails activerecord group-by


【解决方案1】:

我假设您想要以下结果:

group1_sum  2
group2_sum  1
group3_sum  1
group4_sum  4

以下代码应该返回想要的结果:

gt = GroupTally.first(:select => "SUM(group1) AS group1, 
                           SUM(group2) AS group2, 
                           SUM(group3) AS group3, 
                           SUM(group4) AS group4")

p gt.group1 # 2
p gt.group2 # 1
p gt.group3 # 1
p gt.group4 # 4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2010-09-30
    相关资源
    最近更新 更多