1

ここでは、かなり単純なタスクで少し壁にぶつかっています (私はそう思います)。

次のようなテーブルがあります。

SELECT
        title, lat, lng, geocoder_identifier
    FROM entries
    WHERE geocoder_identifier IS NOT NULL;

エントリ テーブル

ユーザーが別の場所と同じ緯度/経度の場所を選択した場合、geocoder_identifier フィールドは両方のエントリで同じになります。私がする必要があるのは、同じ geocoder_identifier を持つすべての行をグループ化し、このグループに含まれる数をカウントしてから、そのグループの最初の行の詳細を返し、他の行を破棄することです。

これまでのところ、これを行うのに最も近いのは次のとおりです。

SELECT DISTINCT
        (geocoder_identifier), title, lat, lng, entry_count
    FROM (
        SELECT
                title,description, lat, lng, geocoder_identifier, COUNT(*) OVER (PARTITION BY geocoder_identifier) AS entry_count
            FROM entries
            WHERE geocoder_identifier IS NOT NULL) AS e
    ORDER BY e.entry_count DESC;

これにより、次のデータセットが生成されます。

ここに画像の説明を入力

ここでの問題は、geocoder_identifiers によって結果を区別する方法を実際に理解できないことです。

4

1 に答える 1