参考MICK的SQL基础教程,进行SQL的基础学习。
Product表的内容:
聚合函数
符号 | 含义 |
---|---|
COUNT | 计算表中的记录数(行数) |
SUM | 计算表中数值列中数据的合计值 |
AVG | 计算表中数值列中数据的平均值 |
MAX | 求出表中任意列中数据的最大值 |
MIN | 求出表中任意列中数据的最小值 |
例子:
SELECT
COUNT(*)
FROM
product;
Out:
计算NULL之外的数据的行数(COUNT)
计算NULL之外的数据行数
SELECT
COUNT(purchase_price)
FROM
product;
Out:
注:purchase_price 列中有两行数据是NULL, 因此并不计算这两行。
计算合计值(SUM)
例子:计算销售单价的合计值
SELECT
SUM(sale_price)
FROM
product;
Out:
注:聚合函数会将NULL排除在外。但COUNT(*)
例外,并不会排除NULL。
计算平均值
计算销售单价和进货单价的平均值
SELECT
AVG(sale_price),
AVG(purchase_price)
FROM
product;
Out:
A
V
G
(
s
a
l
e
_
p
r
i
c
e
)
=
1000
+
500
+
4000
+
3000
+
6800
+
500
+
880
+
100
8
AVG(sale\_price) = \frac{{1000 + 500 + 4000 + 3000 + 6800 + 500 + 880 + 100}}{8}
AVG(sale_price)=81000+500+4000+3000+6800+500+880+100
A
V
G
(
p
u
r
c
h
a
s
e
_
p
r
i
c
e
)
=
500
+
320
+
2800
+
2800
+
5000
+
790
6
AVG(purchase\_price) = \frac{{500 + 320 + 2800 + 2800 + 5000 + 790}}{6}
AVG(purchase_price)=6500+320+2800+2800+5000+790
注:计算进货单价平均值的情况与 SUM 函数相同,会事先删除 NULL再进行计算。
计算最大值和最小值(MAX/MIN)
SELECT
MAX(sale_price),
MIN(purchase_price)
FROM
product;
MAX/MIN
函数和 SUM/AVG
函数有一点不同,那就是 SUM/AVG
函数只能对数值类型的列使用,而 MAX/MIN
函数原则上可以适用于任何数据类型的列。
SELECT
MAX(regist_data),
MIN(regist_data)
FROM
product;
Out:
注:MAX/MIN
函数几乎适用于所有数据类型的列。SUM/AVG
函数只适用于数值类型的列。
使用聚合函数删除重复值(关键字DISTINCT)
在聚合函数的参数中使用DISTINCT
,可以删除重复数据。
计算去除重复数据后的数据行数
SELECT
COUNT(DISTINCT product_type)
FROM
product;
Out: