SQL: 列
の最大値を持つ行を選択します列 ID、rev、および content を含む単純化されたドキュメント テーブルを考えてみましょう。テーブルをフィルタリングして、各 ID の最大 rev 値を含む行を取得するには、SQL 関数 MAX() および GROUP BY を使用できます。
GROUP BY を使用して最大値を抽出します
<code class="language-sql">SELECT id, MAX(rev) FROM YourTable GROUP BY id;</code>
ただし、各 ID の最大 Rev 値を含むデータ行全体を取得するには、次の 2 つのことを行うことができます:
方法 1: 最大のサブクエリで結合
<code class="language-sql">SELECT a.id, a.rev, a.contents FROM YourTable a INNER JOIN ( SELECT id, MAX(rev) rev FROM YourTable GROUP BY id ) b ON a.id = b.id AND a.rev = b.rev;</code>
方法 2: 左結合に独自の条件を使用する
<code class="language-sql">SELECT a.* FROM YourTable a LEFT OUTER JOIN YourTable b ON a.id = b.id AND a.rev < b.rev WHERE b.id IS NULL;</code>
どちらのメソッドも左結合とフィルター条件を利用して、各 ID の最大の Rev 値を持つ行のみを取得します。 2 番目の方法は、最大の rev 値を持つ重複行を除外する結合条件を使用して、テーブルをそれ自体に左結合します。
パフォーマンスノート
これらのメソッドのパフォーマンスは、データベースの種類、テーブルのサイズ、インデックスの使用率などの要因によって異なる場合があります。両方のアプローチをベンチマークして、特定のシナリオに最適なソリューションを決定することをお勧めします。
以上がSQL列の最大値で行のみを選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。