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

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

DDD
リリース: 2024-11-29 11:26:11
オリジナル
118 人が閲覧しました

How to Efficiently Retrieve the Minimum Value for Each Dealer in MySQL?

MySQL でディーラーごとの最低値を取得する

列 ID、名前、値、およびディーラーを持つデータベース構造の場合、次のような疑問が生じます。個々のディーラーの最小値を持つ行を取得する方法まで。 MIN() と GROUP BY を使用して解決策を試みても、満足のいく結果は得られませんでした。

解決策:

この問題を解決するには、次の 2 つのアプローチが利用可能です。

解決策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
ログイン後にコピー

注: 解決策 2 は解決策よりも大幅に高速です1.

詳細については、MySQL を参照してください。マニュアル:

https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_row-number

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

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