ホームページ >データベース >mysql チュートリアル >SQLで最小値を持つ個別の行を取得するにはどうすればよいですか?

SQLで最小値を持つ個別の行を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-24 08:17:08279ブラウズ

How to Retrieve Distinct Rows with the Minimum Value in SQL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。