使用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,包含以下字段:
region:销售区域 sale_amount:销售额
你想查看每个区域的最高销售额和最低销售额,可以这样写:
SELECT region, MAX(sale_amount) AS max_sale, MIN(sale_amount) AS min_sale
FROM sales
GROUP BY region;
查询结果将显示每个区域对应的最高和最低销售额。
西语写作助手
西语助手旗下的AI智能写作平台,支持西语语法纠错润色、论文批改写作
19 查看详情
多字段分组的情况
如果需要按多个字段分组,比如按区域和年份,只需在 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 分组查询如何统计每组最大值和最小值?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/911306.html
微信扫一扫
支付宝扫一扫