使用MAX()和MIN()配合GROUP BY可统计每组极值,如SELECT region, MAX(sale_amount), MIN(sale_amount) FROM sales GROUP BY region;多字段分组可扩展为GROUP BY region, YEAR(sale_date),但需注意无法直接获取极值对应完整记录。

在 SQL 中进行分组查询时,如果想统计每组的最大值和最小值,可以使用聚合函数 MAX() 和 MIN() 配合 GROUP BY 子句来实现。
SELECT 分组字段, MAX(目标字段), MIN(目标字段)
FROM 表名
GROUP BY 分组字段;
这条语句会按指定字段分组,并在每组中找出目标字段的最大值和最小值。
假设有一张销售记录表 sales,包含以下字段:
你想查看每个区域的最高销售额和最低销售额,可以这样写:
SELECT region, MAX(sale_amount) AS max_sale, MIN(sale_amount) AS min_sale
FROM sales
GROUP BY region;
查询结果将显示每个区域对应的最高和最低销售额。
如果需要按多个字段分组,比如按区域和年份,只需在 GROUP BY 后添加多个字段:
SELECT region, YEAR(sale_date) AS sale_year,
MAX(sale_amount) AS max_sale,
MIN(sale_amount) AS min_sale
FROM sales
GROUP BY region, YEAR(sale_date);
这样就能得到每个区域每年的销售额极值。
注意 MAX() 和 MIN() 只返回值本身,不会自动带回该值所在行的其他信息(如对应日期或销售人员)。如果需要完整记录信息,需使用窗口函数或子查询进一步处理。
基本上就这些。用好 GROUP BY 搭配 MAX 和 MIN,能快速完成常见分组极值统计。
以上就是SQL 分组查询如何统计每组最大值和最小值?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号