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

MySQL で各ディーラーの最小値を持つ行を効率的に取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-28 09:13:11
オリジナル
692 人が閲覧しました

How to Efficiently Retrieve Rows with the Lowest Value for Each Dealer in MySQL?

MySQL を使用して複数のディーラーの最低値を持つ行を取得する

ID、名前、値、ディーラーを含む列を持つデータベースで、個別のディーラーごとに最小値を持つ行を取得することを目的としています。 MIN() と GROUP BY を試してみましたが、解決策が見つかりませんでした。

推奨解決策:

解決策 1:

SELECT t1.* FROM your_table t1
JOIN (
  SELECT MIN(value) AS min_value, dealer
  FROM your_table 
  GROUP BY dealer
) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value
ログイン後にコピー

解決策 2 (高速):

SELECT t1.* FROM your_table t1
LEFT JOIN your_table t2
ON t1.dealer = t2.dealer AND t1.value > t2.value
WHERE t2.value IS NULL
ログイン後にコピー

説明:

解決策 1 では、サブクエリを利用して各ディーラーの最小値を見つけます。次に、このサブクエリをメイン テーブルと結合して、対応する行を取得します。

ソリューション 2 では、自己結合を活用して、各ディーラーの最小値を持つ行を効率的に見つけます。 LEFT JOIN を使用して、より低い値の行があるかどうかを確認します。そうでない場合は、そのディーラーの最低値になります。

追加情報:

これは、よく発生する MySQL の問題です。詳細については、「特定の列のグループごとの最大値/最小値を保持する行」のドキュメントを参照してください。

以上がMySQL で各ディーラーの最小値を持つ行を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート