我有一个具有以下结构的跟踪表
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
提前感谢您的任何想法。
PS:请注意,有很多数据(超过 100 000 个对象,每个对象超过 10 个条目)并且位于远程服务器上。因此,我无法获取数据并以某种方式在主服务器上使用 ruby 重新计算它们。