首页 >数据库 >mysql教程 >如何高效地选择SQL数据库中每组的最大值?

如何高效地选择SQL数据库中每组的最大值?

DDD
DDD原创
2025-01-16 13:10:01506浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn