SQL を使用した最小値を持つ一意の行の抽出
SQL クエリでは、定義された条件に基づいて特定の行を選択することがよくあります。 一般的なシナリオは、一意の行のみが返されるようにしながら、列内の最小値を持つ行を取得することです。
このサンプルテーブルで説明してみましょう:
<code>id | game | point -------+--------+-------- 1 | x | 5 1 | z | 4 2 | y | 6 3 | x | 2 3 | y | 5 3 | z | 8</code>
各 id
の最小の point
値を持つ game
を取得するには、サブクエリと内部結合を使用できます。サブクエリは、各 point
の最小 id
を識別します:
<code class="language-sql">SELECT Id, MIN(Point) AS MinPoint FROM TableName GROUP BY Id</code>
このサブクエリは、id
とそれぞれの最小 point
値を生成します。 次に、メイン クエリはこの結果を元のテーブルと結合し、最小ポイントに一致する行をフィルタリングします。
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) AS MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point;</code>
クエリの出力:
<code>id | game | point -------+--------+-------- 1 | z | 4 3 | x | 2 2 | y | 6</code>
このメソッドは、各 point
の最小 id
値を含む一意の行を効果的に返し、後続の分析にクリーンなデータセットを提供します。
以上がSQLで最小値を持つ個別の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。