SQL中的分组函数的使用

1、常用的组函数:

  • AVG([distinct] expr) ,求平均值;

  • COUNT({*|[distinct] } expr),统计行的数量;

  • MAX([distinct] expr),求最大值;

  • MIN([distinct] expr),求最小值;

  • SUM([distinct] expr),求累加和。

2、用法禁忌

  • where关键字位于group by子句之前;
  • 不能在where 后使用分组函数;
  • 分组后的筛选:having关键字,位于group by子句之后 。
SQL中,分组函数(也称为聚合函数)用于对查询结果的数据进行汇总计算,通常与`GROUP BY`子句一起使用。它们的位置通常是: 1. **SELECT 子句**: 这是SQL查询的核心部分,其中包含了要应用分组函数的列。例如: ```sql SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; ``` 这里,`COUNT(*)`就是一个分组函数,它会对指定列按组计数。 2. **子查询语句(括号内)**: 分组函数也可以出现在嵌套查询的`SELECT`部分,如: ```sql (SELECT column_name, AVG(sales) FROM sales_data WHERE year = 2022) GROUP BY column_name; ``` 3. **GROUP BY 子句**: 这是分组函数的关键,用来告诉数据库如何对数据进行分组。例如: ```sql SELECT column1, SUM(column2) FROM table GROUP BY column1; ``` 这会按`column1`的值对`column2`的总和进行分组。 4. **HAVING 子句**: 如果有进一步的过滤条件,可以在`HAVING`子句中使用分组函数,类似于`WHERE`但针对已分组的结果集,例如: ```sql SELECT column1, AVG(column2) FROM table GROUP BY column1 HAVING AVG(column2) > 100; ``` 只显示平均值大于100的组。 5. **ORDER BY 子句**: 虽然`ORDER BY`不直接与分组函数关联,但它可以应用于分组后的结果,比如对分组后的结果进行排序: ```sql SELECT column1, AVG(column2) FROM table GROUP BY column1 ORDER BY AVG(column2) DESC; ``` 按`column2`的平均值降序排列。 请注意,如果未明确指定`GROUP BY`,大部分聚合函数会默认返回所有行的一个值(通常是整个表的总计),这被称为未分组(UNGROUPED)的聚合。[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值