ホームページ > データベース > mysql チュートリアル > SQL データベース内の各グループの最大値を効率的に選択するにはどうすればよいですか?

SQL データベース内の各グループの最大値を効率的に選択するにはどうすればよいですか?

DDD
リリース: 2025-01-16 13:10:01
オリジナル
563 人が閲覧しました

How to Efficiently Select the Maximum Value for Each Group in a SQL Database?

SQL での各グループの最大値の抽出

一般的な SQL タスクには、テーブル内の各一意のグループの最大値の取得が含まれます。 これをテーブルの例で説明してみましょう:

Name Value AnotherColumn
Pump 1 8000.0 Something1
Pump 1 10000.0 Something2
Pump 1 10000.0 Something3
Pump 2 3043 Something4
Pump 2 4594 Something5
Pump 2 6165 Something6

私たちの目標は、各 Value (ポンプ) の最高の Name を見つけて、次の結果をもたらすことです。

Name Value
Pump 1 10000.0
Pump 2 6165

サブクエリを使用して各名前の最大値を検索する単純なアプローチでは、複数の行が同じ最大値を共有する場合、エントリの重複が発生することがよくあります。

1

2

3

4

<code class="language-sql">select a.name, value

from out_pumptable as a,

(select name, max(value) as value from out_pumptable group by name) g

where a.name = g.name and g.value = a.value</code>

ログイン後にコピー

ただし、より効率的で簡潔な解決策は GROUP BY 句を利用します。

1

2

3

<code class="language-sql">select name, max(value)

from out_pumptable

group by name;</code>

ログイン後にコピー

このクエリは、Name 列に基づいて行をグループ化し、各グループ内の最大の Value を選択して、結果の重複を効果的に回避し、目的の出力を提供します。

以上がSQL データベース内の各グループの最大値を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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