私はテーブルdocuments
(id
、user_id
、unique_document_id
、version
、date
)を持っています。SQLクエリは、非重複-行を取得するために
エントリの例は以下のとおりです。
(1, 1, 1001, 1, null),
(1, 1, 1001, 2, null),
(1, 2, 1002, 1, null)
は現在、私は詳細を選択し、表示する問合せがあります
select d.* from documents d
where d.user_id = 1
order by d.date desc
limit 10
offset 0
をしかし、私はunique_document_id
とhaving max(version)
を使用して、非重複行をしたいです。
出力は次のようにする必要があります:(1, 1, 1001, 2, null)
、(1, 2, 1002, 1, null)
は、私は、クエリを変更することによって、これを達成することができますか私は他の場所でこれを処理する必要がありますか? 何かを使用してgroup by unique_document_id and max(version)
。
(MySQL用のワークス)、これを試してみてください。集計されていないすべてのフィールドでグループ化する必要があります。 –
まず、使用しているRDBMSを特定します。 – Strawberry
SQL Serverを使用している場合は、ROW_NUMBER()分析関数を使用してこれを実現できます。 – Prafulla