首页 > 数据库 > mysql教程 > 如何在 SQL 中查找每个名称组的最大总数?

如何在 SQL 中查找每个名称组的最大总数?

Patricia Arquette
发布: 2025-01-07 21:11:44
原创
296 人浏览过

How to Find the Maximum Total for Each Name Group in SQL?

SQL分组查询最大值

本问题旨在从表中提取特定数据,目标是为每个唯一的“Name”字段找到具有最高“Total”值的记录。 这与查找每个组的最后一条记录的问题有所不同。

以下是两种实现该目标的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>
登录后复制

此查询使用子查询来查找每个Name组中的最大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>
登录后复制

此查询使用INNER JOINsometable与一个子查询连接,该子查询为每个Name组计算最大Total值。 INNER JOIN条件确保只选择Total值与每个组的最大值匹配的记录。

两种方法都能得到相同的结果:

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

以上是如何在 SQL 中查找每个名称组的最大总数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板