ホームページ > データベース > mysql チュートリアル > SQL で各名前グループの最大合計を見つける方法は?

SQL で各名前グループの最大合計を見つける方法は?

Patricia Arquette
リリース: 2025-01-07 21:11:44
オリジナル
295 人が閲覧しました

How to Find the Maximum Total for Each Name Group in SQL?

SQL グループクエリの最大値

この質問は、一意の「名前」フィールドごとに「合計」値が最も高いレコードを見つけることを目的として、テーブルから特定のデータを抽出するように設計されています。 これは、各グループの最後のレコードを見つける問題とは異なります。

この目標を達成するための 2 つの SQL クエリ方法を次に示します。

方法 1: サブクエリ

<code class="language-sql">SELECT Name, Top, Total
FROM sometable
WHERE Total = (
    SELECT MAX(Total)
    FROM sometable i
    WHERE i.Name = sometable.Name
);</code>
ログイン後にコピー

このクエリは、サブクエリを使用して各 Name グループ内の最大 Total 値を検索し、その最大値に一致するレコードのみを選択します。

方法 2: 自己接続

<code class="language-sql">SELECT Name, Top, Total
FROM sometable
INNER JOIN (
    SELECT MAX(Total) AS Total, Name
    FROM sometable
    GROUP BY Name
) AS max ON max.Name = sometable.Name AND max.Total = sometable.Total;</code>
ログイン後にコピー

このクエリは、INNER JOIN を使用して、sometable を各 Name グループの最大 Total 値を計算するサブクエリと結合します。 INNER JOIN 条件により、Total 値が各グループの最大値と一致するレコードのみが選択されます。

どちらの方法でも同じ結果が得られます:

Name Top Total
cat 3 20
horse 4 4
dog 6 9

以上がSQL で各名前グループの最大合計を見つける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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