《SQL必知必会》--汇总数据
第九课 汇总数据
本课接着上一节课,继续讲解函数。相对于上一节课中各种不同类型的函数,本节课中的函数在数据分析时也更常用,且基本具有可移植性。
聚集函数
在实际需求中,我们经常需要把某列的数据汇总起来寻找我们需要的特定数值,但是却又不需要把所有数值检索出来。
比如,我们寻找某一列的最大值,我们首先需要遍历该列,然后进行比较,最后只是输出一个数值而已。
这些便是聚集函数(aggregate function)的作用:遍历某列中特定行,计算并返回一个值。
函数 | 说明 |
---|---|
AVG() | 返回某列平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列最大值 |
MIN() | 返回某列最小值 |
SUM() | 返回某列值之和 |
AVG()
函数
- 求某列所有行数值的平均值
输入:
1 |
|
输出:
1 |
|
- 求某列有条件的特定行行数值的平均值
输入:
1 |
|
输出:
1 |
|
每一个
AVG()
函数只能用于一列,求多列平均值,请用多个AVG()
函数;AVG()
函数忽略列值为 NULL 的行。
COUNT()
函数
COUNT()
函数有两种命令模式,COUNT(*)
和COUNT(COLUMN)
。
COUNT(*)
计算所有行数,无论行中数值样式,包括NULL值。
1 |
|
COUNT(COLUMN)
计算某一列中的行数,此时,自动忽略NULL值。
1 |
|
1 |
|
MAX()
函数
- 求某列所有行数值的最大值
输入:
1 |
|
输出:
1 |
|
- 求某列有条件的特定行行数值的最大值
输入:
1 |
|
输出:
1 |
|
忽略NULL值;
可用于数值数据、日期数据和文本数据;
当用于文本数据后,返回排序最后位置的数值。
MIN()
函数
- 求某列所有行数值的最小值
输入:
1 |
|
输出:
1 |
|
- 求某列有条件的特定行行数值的最小值
输入:
1 |
|
输出:
1 |
|
忽略NULL值;
可用于数值数据、日期数据和文本数据;
当用于文本数据后,返回排序最前位置的数值。
SUM()
函数
- 普通某列全部数值之和
1 |
|
- 有条件的过滤后数据数值之和
1 |
|
- 过滤后经过算术计算的数据数值之和
1 |
|
忽略NULL值
聚集不同值
以上5各聚集函数都可以如下使用:
- 指定ALL参数(默认,可不指定)
- 制定DISTINCT参数
不指定参数时:
输入
1 |
|
输出
1 |
|
制定DISTINCT参数:
输入
1 |
|
输出
1 |
|
DISTINCT不能用于
COUNT(*)
,但可用于COUNT(column)
;
DISTINCT从技术上可以用于MIN()
和MAX()
,但是没必要;
组合聚集函数
- 组合聚集函数,也就是说一个SELECT语句可以包含多个聚集函数。
- 但是,需要记住为每一个聚集函数子句使用不同别名。
1 |
|
小结
本文看似学了很多,但是细分下来,也就是几点。
- 5个聚集函数的基本使用;
- 5个聚集函数与过滤函数的配合使用;
- 5个聚集函数与取值参数的配合使用;
- 5个聚集函数的组合使用。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!