2010-03-12 74 views
1

组我有如下表行:用的ActiveRecord在Rails的

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

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

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

所有帮助表示赞赏。

+1

你的问题不是很清楚。你能用预期的结果集更新问题吗? – 2010-03-12 08:48:29

回答

2

我假设你想要的结果如下:

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 
+0

@KandadaBoggu谢谢。 – Adnan 2010-03-12 09:28:40