SQL 分组查询如何统计每组最大值和最小值?

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

sql 分组查询如何统计每组最大值和最小值?

在 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
东芝手机屏幕自动旋转失效怎么解决_东芝手机屏幕旋转问题的解决方法
上一篇 2025年11月29日 02:35:55
bios新电脑怎么设置
下一篇 2025年11月29日 02:35:59

相关推荐

发表回复

登录后才能评论
关注微信