【发布时间】:2012-05-17 16:52:29
【问题描述】:
我有一个具有以下结构的跟踪表id | country_iso | object_id | created_at
每个对象可以有一个或多个国家的多个条目。我需要弄清楚每个国家/地区现在有多少物品。
我不能只按 country_iso 对其进行分组,因为在这种情况下,我将获得每个国家/地区的条目数,而不是对象数。
我不能按 country_iso 和 object_id 对其进行分组,因为此时我将获得每个国家/地区每个对象的条目数。
所以,似乎我必须获取每个对象的最后一个条目,然后按国家/地区对它们进行分组并获取数量。我还需要避免最后一个条目的 country_iso 等于 null 的情况。因此,如果 object 的最后一个条目为 null,我们必须在 last 之前获取条目等一个(因此,最新的不为 null country_iso )。
例子:
1 | US | 1 | 25.02.02
2 | null | 1 | 26.02.02
3 | UK | 2 | 25.02.02
4 | UK | 3 | 25.02.02
5 | UK | 4 | 25.02.02
6 | US | 4 | 26.02.02 `
结果将是
US | 2
UK | 2
提前感谢您的任何想法。
P.S.:请注意,有很多数据(超过 100 000 个对象,每个对象超过 10 个条目)并且位于远程服务器上。因此,我无法获取数据并以某种方式在主服务器上使用 ruby 重新计算它们。
【问题讨论】:
-
100,000?如果您需要经常这样做,您也许可以在 Ruby 中做到这一点......!
-
我必须做一次(至少它被请求为一次数据拉取)
标签: ruby-on-rails mongodb mongomapper database