SQL聚合函数
精华
小牛编辑
159浏览
2023-03-14
SQL聚合函数用于对表的单个列的多行执行计算,它只返回一个值。它还用于汇总数据。
SQL聚合函数的类型,如下图所示 -
接下来,我们一个个地讲解。
1.COUNT函数
COUNT
函数用于计算数据库表中的行数,它可以在数字和非数字数据类型上工作。COUNT
函数使用COUNT(*)
返回指定表中所有行的计数。COUNT(*)
包函重复值和NULL
值。
语法
COUNT(*)
# 或者
COUNT( [ALL|DISTINCT] expression )
假设有一个PRODUCT_MAST
表,它的结构和数据如下所示 -
PRODUCT | COMPANY | QTY | RATE | COST |
---|---|---|---|---|
Item1 | Com1 | 2 | 10 | 20 |
Item2 | Com2 | 3 | 25 | 75 |
Item3 | Com1 | 2 | 30 | 60 |
Item4 | Com3 | 5 | 10 | 50 |
Item5 | Com2 | 2 | 20 | 40 |
Item6 | Cpm1 | 3 | 25 | 75 |
Item7 | Com1 | 5 | 30 | 150 |
Item8 | Com1 | 3 | 10 | 30 |
Item9 | Com2 | 2 | 25 | 50 |
Item10 | Com3 | 4 | 30 | 120 |
示例1
SELECT COUNT(*)
FROM PRODUCT_MAST;
执行上面语句,得到以下结果 -
10
示例2
SELECT COUNT(*)
FROM PRODUCT_MAST;
WHERE RATE>=20;
执行上面语句,得到以下结果 -
7
示例3
SELECT COUNT(DISTINCT COMPANY)
FROM PRODUCT_MAST;
执行上面语句,得到以下结果 -
3
示例4
SELECT COUNT(DISTINCT COMPANY)
FROM PRODUCT_MAST;
执行上面语句,得到以下结果 -
3
示例5
SELECT COMPANY, COUNT(*)
FROM PRODUCT_MAST
GROUP BY COMPANY;
执行上面语句,得到以下结果 -
Com1 5
Com2 3
Com3 2
示例6
SELECT COMPANY, COUNT(*)
FROM PRODUCT_MAST
GROUP BY COMPANY
HAVING COUNT(*)>2;
执行上面语句,得到以下结果 -
Com1 5
Com2 3
2. SUM函数
Sum
函数用于计算所有选定列的总和。它仅适用于数字类型的字段。
语法
SUM()
# 或
SUM( [ALL|DISTINCT] expression )
示例1
SELECT SUM(COST)
FROM PRODUCT_MAST;
执行上面查询语句,得到以下结果 -
670
示例2
SELECT SUM(COST)
FROM PRODUCT_MAST
WHERE QTY>3;
执行上面查询语句,得到以下结果 -
320
示例3
SELECT SUM(COST)
FROM PRODUCT_MAST
WHERE QTY>3
GROUP BY COMPANY;
执行上面查询语句,得到以下结果 -
Com1 150
Com2 170
示例4
SELECT COMPANY, SUM(COST)
FROM PRODUCT_MAST
GROUP BY COMPANY
HAVING SUM(COST)>=170;
执行上面查询语句,得到以下结果 -
Com1 335
Com3 170
3. AVG函数
AVG函数用于计算数值类型的平均值。AVG
函数返回所有非Null
值的平均值。
语法
AVG()
#或
AVG( [ALL|DISTINCT] expression )
示例1
SELECT AVG(COST)
FROM PRODUCT_MAST;
执行上面查询语句,得到以下结果 -
67.00
4. MAX函数
MAX函数用于查找某列的最大值,此函数确定列的所有选定值的最大值。
语法
MAX()
# 或
MAX( [ALL|DISTINCT] expression )
示例1
SELECT MAX(RATE)
FROM PRODUCT_MAST;
执行上面查询语句,得到以下结果 -
30
5. MIN函数
MIN函数用于查找某列的最小值,此函数确定列的所有选定值的最小值。
语法
MIN()
# 或
MIN( [ALL|DISTINCT] expression )
示例1
SELECT MIN(RATE)
FROM PRODUCT_MAST;
执行上面查询语句,得到以下结果 -
10