首頁 > 資料庫 > mysql教程 > 如何有效率地選擇SQL資料庫中每組的最大值?

如何有效率地選擇SQL資料庫中每組的最大值?

DDD
發布: 2025-01-16 13:10:01
原創
556 人瀏覽過

How to Efficiently Select the Maximum Value for Each Group in a SQL Database?

在 SQL 中提取每個群組的最大值

常見的 SQL 任務涉及檢索表中每個唯一組的最大值。 讓我們用一個範例表來說明這一點:

Name Value AnotherColumn
Pump 1 8000.0 Something1
Pump 1 10000.0 Something2
Pump 1 10000.0 Something3
Pump 2 3043 Something4
Pump 2 4594 Something5
Pump 2 6165 Something6

我們的目標是為每個Value(泵)找到最高的Name,產生以下結果:

Name Value
Pump 1 10000.0
Pump 2 6165

當多行共享相同的最大值時,使用子查詢來尋找每個名稱的最大值的簡單方法通常會導致重複條目:

<code class="language-sql">select a.name, value 
from out_pumptable as a,
(select name, max(value) as value from out_pumptable group by name) g
where a.name = g.name and g.value = a.value</code>
登入後複製

但是,更有效率、簡潔的解決方案使用 GROUP BY 子句:

<code class="language-sql">select name, max(value)
from out_pumptable
group by name;</code>
登入後複製

此查詢根據 Name 列對行進行分組,然後選擇每個組中的最大值 Value,有效避免重複結果並提供所需的輸出。

以上是如何有效率地選擇SQL資料庫中每組的最大值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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