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

MySQL で各ディーラーの最小値を持つ行を見つけるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-29 08:10:11
オリジナル
393 人が閲覧しました

How to Find the Row with the Lowest Value for Each Dealer in MySQL?

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

次の構造を持つデータベースを考えます:

CREATE TABLE your_table (
  id INT NOT NULL,
  name VARCHAR(255) NOT NULL,
  value INT NOT NULL,
  dealer VARCHAR(255) NOT NULL
);
ログイン後にコピー

目的: の最小値を持つ行を取得します。

解決策:

解決策 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 では、最適化された左結合を使用して、同じディーラーのより大きな値を持つ行を削除し、最も低い値を持つ行のみを効果的に返します。

MySQL は、ドキュメントにこれに関する専用のセクションを提供しています。 「特定の列のグループごとの最大値/最小値を保持する行」というタイトルの頻繁に発生するシナリオ。詳細と例については、このドキュメントを参照してください。

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

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