ホームページ >データベース >mysql チュートリアル >データベーステーブル内の各グループの最大値を見つけるにはどうすればよいですか?

データベーステーブル内の各グループの最大値を見つけるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-16 12:53:59892ブラウズ

How to Find the Maximum Value for Each Group in a Database Table?

関係関数を使用して各グループの最大値を見つけます

データベースでは、有意義な洞察を抽出するためにデータをグループ化して集約するのが一般的です。このような集計関数の 1 つは、各データ グループの最大値を選択することです。

ポンプ名 ("name")、値 ("value")、および別の列 ("AnotherColumn") によって編成されたポンプ使用情報を含む、「out_pumptable」という名前の仮想テーブルについて考えてみましょう。サンプルデータは次のようになります:

<code>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</code>

グループ化と最大集約

各ポンプの最大値を選択するには、SQL で GROUP BY 関数と MAX() 関数を使用します。次のクエリでこのタスクを実行できます:

<code>SELECT name, MAX(value)
FROM out_pumptable
GROUP BY name</code>

クエリの理解

  • GROUP BY name 句は、テーブルを「name」列でグループ化するようにデータベースに指示します。これにより、ポンプごとに異なるグループが作成されます。
  • MAX(value)関数は各グループの最大値を計算します。
  • 結果のテーブルには、各ポンプの最大値を示すエントリが含まれます。

重複エントリの問題を解決します

指定されたコード例では、同じ最大値を持つポンプの重複エントリが存在する可能性があります。これは、クエリが各行を最大値と照合し、結果としてエントリが冗長になるためです。

この問題を解決するには、クエリを変更して「名前」と「値」のさまざまな組み合わせを選択します。

<code>SELECT DISTINCT name, MAX(value)
FROM out_pumptable
GROUP BY name</code>

この変更により、同じ最大値を持つ複数の行がある場合でも、各ポンプが 1 回だけ表示されるようになります。

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

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