欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

介绍一下什么是SQL的聚集函数?如何利用它们汇总表的数据?

程序员文章站 2022-07-10 12:12:28
介绍一下什么是sql的聚集函数?如何利用它们汇总表的数据? 9.1 聚集函数 聚集函数(aggregate function): 对某些行运行的函数,计算并返回一个值。 sql给出了5个聚集函数,见...

介绍一下什么是sql的聚集函数?如何利用它们汇总表的数据?

9.1 聚集函数

聚集函数(aggregate function): 对某些行运行的函数,计算并返回一个值。

sql给出了5个聚集函数,见表9-1。这些函数能进行上述检索。与前一章介绍的数据处理函数不同,sql的聚集函数在各种主要sql实现中得到了相当一致的支持。

 介绍一下什么是SQL的聚集函数?如何利用它们汇总表的数据?

表9-1 sql聚集函数

avg()函数:计算平均数。eg.select avg(prod_price) as avg_price.          同时,还可以计算特定行或列的平均值。          eg.select avg(prod_price) as avg_price from products where vend_id='d12';

警告:只用于单个列

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

说明:null值

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

count函数:

count()函数有两种使用方式:

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

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

select count(*) as num_cust

from customers;           (返回顾客总数)

select count(cust_email) as num_cust

from customers;       (只对具有电子邮件地址的客户计数)

max() & min()函数:

与max()一样,min()要求指定列名。eg.select min(prod_price) as min_price from products;

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

利用标准的算术操作符,所有聚集函数都可用来执行多个列上的计算,例如下例sum()函数:

select sum(item_price*quantity) as total_price 

from orderitems 

where ordernum 20005;

9.2 聚集不同值

 下面的例子使用avg()函数返回特定供应商提供的产品的平均价格。它与上面的select语句相同,但使用了distinct参数,因此平均值只考虑各个不同的价格:

select avg(distinct prod_price) as avg_price 

from products

where vend_id = 'dll01';

警告:distinct不能用于count(*)

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

9.3 组合聚集函数

实际上,select语句可根据需要包含多个聚集函数。

select count(*) as num_items,

         min(prod_price) as price_min,

         max(prod_price) as price_max, 

         avg(prod_price) as price_avg

from products;