我有一个大数据集,我想为用户清理。该数据从数据库设置看起来是这样的:Ruby/Rails - 如何聚合数组中的查询结果?
ID | project_id | thread_id | action_type |description
1 | 10 | 30 | comment | yada yada yada yada yada
1 | 10 | 30 | comment | xxx
1 | 10 | 30 | comment | yada 313133
1 | 10 | 33 | comment | fdsdfsdfsdfsdfs
1 | 10 | 33 | comment | yada yada yada yada yada
1 | 10 | | attachment | fddgaasddsadasdsadsa
1 | 10 | | attachment | xcvcvxcvxcvxxcvcvxxcv
现在,当我输出如上上述,我在同样的顺序查看它,问题是,它是很重复。例如,对于PROJECT_ID 10 & THREAD_ID 30你看:
10 - 30 - yada yada yada yada yada
10 - 30 - xxxxx
10 - 30 - yada yada yada yada yada
我想什么来学习如何在Ruby中做的,是一些如何创建一个PROJECT_ID和thread_id,则下一个数组,aggreate描述,所以不是输出是:
10 - 30
- yada yada yada yada yada
- xxxxx
- yada yada yada yada yada
有关从哪里开始的建议?这个要求对我来说是新的,所以我会很感激你对你正在考虑解决问题的最好方法的想法。希望这可以通过ruby而不是sql来完成,因为活动提要可能会随着事件类型和复杂。
感谢
对于SQL方法使用GROUP BY。对于Ruby方法,使用Enumerable#group_by。检查文档。 – tokland 2011-02-11 23:15:19
这些数据采用何种形式?它是ActiveRecord对象还是JSON对象或其他东西? – 2011-02-11 23:16:25