首頁 > 資料庫 > mysql教程 > 如何在 SQL 中檢索每個唯一'名稱”的最大'總計”值?

如何在 SQL 中檢索每個唯一'名稱”的最大'總計”值?

Susan Sarandon
發布: 2025-01-07 21:20:41
原創
470 人瀏覽過

How to Retrieve the Maximum

SQL技巧:按組別擷取最大值

在資料庫查詢中,經常需要針對表中每個不同的分組提取最大值。本文將解決如何在一個表中,為每個唯一的「Name」選擇具有最高「Total」值的記錄的問題。

範例表格與資料:

假設我們有以下範例表:

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

查詢目標:

我們的目標是提取以下結果:

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

解:

可以使用下列SQL查詢來實現此目標:

<code class="language-sql">SELECT
  Name, Top, Total
FROM
  sometable
WHERE
  Total = (SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name);</code>
登入後複製

解釋:

此查詢在WHERE子句中使用了子查詢。子查詢根據「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」最大值來從表中提取所需的記錄。這些查詢可以適應各種資料庫管理系統,並為從分組資料中提取最大值提供通用的方法。

以上是如何在 SQL 中檢索每個唯一'名稱”的最大'總計”值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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