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>
このサブクエリは各「名前」の最大「合計」値を見つけ、メイン クエリは一致するレコードを除外します。
もう 1 つの方法は、ネストされたクエリを使用することです:
<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>
このネストされたクエリは、各「名前」の最大「合計」値を含む一時テーブルを作成します。次に、メインクエリは、「name」と「total」の値が一致するこの一時テーブルと sometable
テーブルを結合します。接続の結果は、それぞれの一意の「名前」に対応する最大「合計」値のレコードです。
以上がSQLで各グループの最大値を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。