首頁 > 資料庫 > mysql教程 > 如何在SQL中找到每個群組的最大記錄?

如何在SQL中找到每個群組的最大記錄?

Mary-Kate Olsen
發布: 2025-01-07 21:47:41
原創
220 人瀏覽過

How to Find the Maximum Record for Each Group in SQL?

SQL中按群組找出最大記錄

在資料庫管理中,經常需要檢索每個資料組中的最大記錄。考慮以下場景。

問題:

您有一個包含三個欄位的表格:“Name”、“Top”和“Total”,資料如下:

Name Top Total
cat 1 10
dog 2 7
cat 3 20
horse 4 4
cat 5 10
dog 6 9

您的任務是尋找每個唯一「Name」值中「Total」值最大的記錄。期望的結果應該是:

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

解:

要檢索每個群組的最大記錄,可以使用以下查詢:

<code class="language-sql">select
  Name, Top, Total
from
  sometable
where
  Total = (select max(Total) from sometable i where i.Name = sometable.Name)</code>
登入後複製

此查詢將每筆記錄的「Total」值與其在同一「Name」群組中的最大「Total」值進行比較。然後選擇“Total”值匹配的記錄。

或者,您可以使用子查詢來實現相同的結果:

<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」值。然後,主查詢將資料表與子查詢連接,以僅選擇具有符合最大「Total」值的記錄。

以上是如何在SQL中找到每個群組的最大記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板