SQL必知必会笔记汇总数据——使用聚合函数

sql必知必会笔记汇总数据——使用聚合函数

 

有时候我们需要对表中的数据进行汇总,而不需要数据本身,为了方便这些类型的检索,sql给出了5个聚合函数,sql聚合函数在各主要的sql实现中得到了相当一致的支持。如下:

 

 

1.1 avg()函数

 

avg()通过对表中行数计数并计算其列值之和,求得该列的平均值

 

//avg()示例:
select avg(prod_price) as avg_price
from products
where vend_id = 'dll01';

 

 注意:只用于单个列

 

avg()只能用来确定特定数值列的平均值,而且列名必须作为函数参 数给出。为了获得多个列的平均值,必须使用多个avg()函数。

 

 说明:null 值

 

avg()函数忽略列值为null 的行。

 

1.2 count()函数

 

count()可以确定表中行的数目或符合特定条件的行的数目。

 

count()函数的两种使用方式

 

使用count(*)对表中行的数目进行计数,不管表列中包含的是空值(null)还是非空值。

使用count(column)对特定列中具有值的行进行计数,忽略null 值。

//示例
select count(*) as num_cust
from customers;

 

说明:null 值

 

如果指定列名,则count()函数会忽略指定列的值为空的行,但如果 count()函数中用的是星号(*),则不忽略。

 

1.3 max()函数

 

max()返回指定列中的最大值。max()要求指定列名

 

//示例
select max(prod_price) as max_price
from products;

 

 

 

提示:对非数值数据使用max()和min()

 

虽然max()一般用来找出最大的数值或日期值,但许多(并非所有) dbms 允许将它用来返回任意列中的最大值,包括返回文本列中的最 大值。在用于文本数据时,max()返回按该列排序后的最后一行。

 

说明:null 值

 

max()和min()函数忽略列值为null 的行。

 

1.4 min()函数

 

min()的功能正好与max()功能相反,它返回指定列的最小值

 

//示例
select min(prod_price) as min_price
from products;

 

 

1.5 sum()函数

 

sum()用来返回指定列值的和(总计)

 

select sum(quantity) as items_ordered
from orderitems
where order_num = 20005;

 

提示:在多个列上进行计算

 

如本例所示,利用标准的算术操作符,所有聚集函数都可用来执行多 个列上的计算。

 

说明:null 值

 

sum()函数忽略列值为null 的行。

 

1.6 聚合不同的值

 

对于上面的五个函数都可以如下使用:

 

对所有行执行计算,指定all 参数或不指定参数(因为all 是默认行为)。

只包含不同的值,指定distinct 参数。

提示:all 为默认

 

all 参数不需要指定,因为它是默认行为。如果不指定distinct,则 假定为all。

 

distinct示例

 

select avg(distinct prod_price) as avg_price
from products
where vend_id = 'dll01';

 

 

注意:distinct 不能用于count(*)

 

如果指定列名,则distinct 只能用于count()。distinct 不能用 于count(*)。类似地,distinct 必须使用列名,不能用于计算或表 达式。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐