Группировать с ActiveRecord в Rails - PullRequest
1 голос
/ 12 марта 2010

У меня есть следующая таблица со строками:

===============================================
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      |
===============================================

EDIT: Ожидаемый результат, на мой взгляд, будет следующим: будет выведено имя группы (group1, group2 ... там около 30 групп) и в скобках указано количество пользователей, которые имеют значение 1 для этой группы.

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

Вся помощь приветствуется.

1 Ответ

2 голосов
/ 12 марта 2010

Полагаю, вам нужны следующие результаты:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...