当前位置: 首页 > 教程 > 数据库管理系统 >

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