在 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中文網其他相關文章!