SQL聚合函数详解:AVG、SUM、MIN、MAX与COUNT在实践中的应用
需积分: 0 28 浏览量
更新于2024-08-05
收藏 635KB PDF 举报
本章节主要讲解了SQL中的聚合函数,由尚硅谷的宋红康讲师(江湖人称:康师傅)授课。在SQL中,聚合函数是一类特殊的函数,用于对一组数据进行汇总处理,它们将输入的一组数据集合转化为单个输出值,从而实现数据分析的简化。
聚合函数主要有以下几种类型:
1. **AVG()**:用于计算数值型数据的平均值,例如计算员工工资的平均数。
2. **SUM()**:用于求和,如求工资总额或者特定列的数值总和。
3. **MAX()** 和 **MIN()**:分别返回最大值和最小值,可用于比较范围或者查找极端值。
4. **COUNT()**:有两个用法:
- COUNT(*):返回表中记录的总数,包括NULL值。
- COUNT(expr):返回expr非空值的记录数,expr可以是列名。
关于使用COUNT(*)、COUNT(1)和COUNT(列名)的区别,对于MyISAM引擎的表,由于其内部计数机制,它们的效果是相同的,但InnoDB引擎下有所不同。COUNT(*)和COUNT(1)在InnoDB中需要遍历所有行来计算,复杂度为O(n),而COUNT(列名)在查询时会跳过NULL值,效率更高。然而,推荐使用标准的COUNT(*),因为它不受数据库引擎限制,且能够正确统计NULL值。
举例来说,以下是一些SQL查询示例:
- 计算job_id为'rep%'的员工的平均工资、最高工资和最低工资:
```sql
SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)
FROM employees
WHERE job_id LIKE '%REP%';
```
- 获取employees表中特定部门(例如50号部门)的所有记录数:
```sql
SELECT COUNT(*)
FROM employees
WHERE department_id = 50;
```
- 求commission_pct列中非NULL值的数量:
```sql
SELECT COUNT(commission_pct)
FROM table_name;
```
理解并熟练运用SQL的聚合函数是数据分析和报表生成的关键,通过它们可以快速提取有价值的信息,优化查询性能,并确保结果准确无误。
2022-08-03 上传
2024-01-17 上传
258 浏览量
620 浏览量
243 浏览量
271 浏览量
148 浏览量
408 浏览量