ホームページ >データベース >mysql チュートリアル >結合を使用して SQL で最小値を持つ個別の行を検索する方法

結合を使用して SQL で最小値を持つ個別の行を検索する方法

DDD
DDDオリジナル
2025-01-24 08:21:09333ブラウズ

How to Find Distinct Rows with Minimum Values in SQL Using Joins?

sqlクエリ最適化:最小値で一意の行を取得

このガイドは、特定の列から最小値を含む一意の行を抽出するための効率的なSQL手法を示しています。 これは多くの場合、グループ化されたデータを扱うときに必要であり、結合とフィルタリングの組み合わせが必要です。

次のサンプルテーブルを検討してください:

目的は、それぞれの一意の
<code class="language-sql">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次のSQLクエリはこれを達成します:

<code class="language-sql">id  game   point
1    z      4
2    y      6
3    x      2</code>

クエリの内訳:

<code class="language-sql">SELECT tbl.*
FROM TableName tbl
INNER JOIN (
    SELECT game, MIN(point) AS min_point
    FROM TableName
    GROUP BY game
) AS tbl1 ON tbl1.game = tbl.game AND tbl1.min_point = tbl.point;</code>

内側の結合:
    これは、)とサブクエリの結果を効率的に組み合わせています()。 TableNamesubquery:tblこれは、tbl1を使用して一意の各の最小
  • を計算し、結果をでグループ化します。 その結果、とそれに対応する最小pointgameMIN(point)句の上:game結合条件により、メインテーブルとサブクエリ間の一致がgamepointの列のみが含まれていることが保証されます。 これにより、各
  • この最適化されたクエリは、不必要な複雑さを回避し、目的の結果を直接取得します。 これは、代替アプローチよりも簡潔で、しばしば高速な解決策です。

以上が結合を使用して SQL で最小値を持つ個別の行を検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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