次の構造のトレースのテーブルがあります
id | country_iso | object_id | created_at
。各オブジェクトには、1 つ以上の国に対して多くのエントリを含めることができます。各国に現在いくつのオブジェクトがあるかを把握する必要があります。
country_iso でグループ化することはできません。この場合、国ごとのエントリ数は取得できますが、オブジェクトの数は取得できません。
今回は各国の各オブジェクトのエントリ数を取得するため、country_iso と object_id でグループ化することはできません。
そのため、オブジェクトごとに最後のエントリを取得し、国ごとにグループ化して数量を取得する必要があるようです。また、最後のエントリの country_iso が null に等しい場合も回避する必要があります。そのため、オブジェクトの最後のエントリが null の場合、最後のエントリよりも前にエントリを取得する必要があります (したがって、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 を使用して何らかの方法でデータを再計算します。