SQL分组最大值查找方法
本文探讨如何从包含多个相同“名称”(Name)但不同“总计”(Total)值的表中,提取每个唯一“名称”对应的最大“总计”值记录。
一种解决方案是使用子查询:
<code class="language-sql">SELECT Name, Top, Total FROM sometable WHERE Total = (SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name);</code>
该子查询为每个“名称”查找最大“总计”值,主查询则筛选出与之匹配的记录。
另一种方法是使用嵌套查询:
<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>
此嵌套查询创建一个临时表,包含每个“名称”对应的最大“总计”值。主查询随后将sometable
表与该临时表连接,连接条件为“名称”和“总计”值匹配。连接结果即为每个唯一“名称”对应的最大“总计”值记录。
以上是如何在SQL中找到每个组的最大值?的详细内容。更多信息请关注PHP中文网其他相关文章!