首頁 > 資料庫 > mysql教程 > 如何使用 SQL 找出每個組中最年長的人?

如何使用 SQL 找出每個組中最年長的人?

Mary-Kate Olsen
發布: 2025-01-23 22:37:11
原創
515 人瀏覽過

How to Find the Oldest Person in Each Group Using SQL?

使用 SQL 有效辨識每組中最年長的人

資料庫查詢通常需要尋找特定群組內的最大值。 此範例示範如何從具有 persongroupage 列的表中找出每組中年齡最大的人。

解:

此方法利用 LEFT JOIN 來比較小組中每個人的年齡。 沒有匹配的行代表該組中最年長的人。

實作:

<code class="language-sql">SELECT o.*
FROM Persons o
LEFT JOIN Persons b ON o.Group = b.Group AND o.Age < b.Age
WHERE b.Age IS NULL;</code>
登入後複製

說明:

  • Persons oPersons 表的別名為 o(表示「最舊的」)。
  • LEFT JOIN Persons b:使用別名為 LEFT JOIN(代表「較大年齡」)的 Persons 表執行 b。 這會將 o 中的每一行與同一組 (o.Group = b.Group) 中年齡較大 (o.Age < b.Age) 的行連接起來。
  • WHERE b.Age IS NULL:這個關鍵子句過濾結果。 如果 o 中的某個人在 b 中沒有匹配項(意味著 b.Age 為 NULL),則表示其組中沒有人年齡較大。 因此,只選擇每組中年齡最大的人。

重要注意事項:

  • 使用 INNER JOIN 會錯誤地忽略​​只有一個成員的組別中最年長的人。
  • 對於此類查詢,此方法是一種高效且廣泛推薦的技術。 「SQL 反模式磁碟區 1:避免資料庫程式設計的陷阱」中討論了類似的方法。

以上是如何使用 SQL 找出每個組中最年長的人?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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