第四部分 SQL聚集函数

聚集函数只是汇总数据而不用把它们实际检索出来,运行在行组上,计算和返回单个值的函数。

示例:返回products表中物品的数目,产品价格的最高、最低和平均值

SQL语句: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;

1) AVG()函数

AVG()通过对表中行数计数并计算特定列值之后,求得该列的平均值,它既可以用来返回所有列的平均值,也可以用来返回特定列或行的平均值。

示例1:返回products表中所有产品的平均价格

SQL语句:SELECT AVG(prod_price) AS avg_price FROM products;

示例2:返回特定供应商所提供的产品平均价格

SQL语句:SELECT AVG(prod_price) AS avg_price FROM products WHERE vend_id=1003;

示例3:返回特定供应商提供的产品的平均价格,平均值只考虑各个不同的价格

SQL语句:SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id=1003;

注意:AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数,另外DISTINCT用于聚集函数时,必须指定列名,否则报错。

(2) COUNT()函数

COUNT()函数用于计数,可利用此函数确定表中行的数目或符合条件的行的数目。

使用COUNT(column)对特定列中具有值的行进行计数,则指定列的值为空的行被COUNT()函数忽略,但如果使用COUNT(*)对表中行的数目进行计数,则不忽略。

示例1:返回customers表中客户的总数

SQL语句:SELECT COUNT(*) AS num_cust FROM customers;

示例2:只对具有电子邮件地址的客户计数

SQL语句:SELECT COUNT(cust_email) AS num_cust FROM customers;

(3) MAX()函数

MAX()函数返回指定列中的最大值,函数需要指定列名,并忽略列值为NULL的行。

示例:返回products表中最贵的物品的价格

SQL语句:SELECT MAX(prod_price) AS max_price FROM products;

(4) MIN()函数

MIN()函数功能与MAX()函数功能相反,它返回指定列的最小值,也需要指定列名。

示例:返回products表中最便宜物品的价格

SQL语句:SELECT MIN(prod_price) AS min_price FROM products;

(5) SUM()函数

SUM()函数用来返回指定列值的和,即总计。

示例1:检索物品订单号为20005的所订购物品的总量

SQL语句:SELECT SUM(quantity) AS items_ordered FROM orderitems WHERE order_num = 20005;

示例2:统计物品订单号20005中所有物品的订单总额(单价*数量)

SQL语句:SELECT SUM(item_price*quantity) AS total_price FROM orderitems WHERE order_num=20005;

猜你喜欢

转载自www.cnblogs.com/wzw0625/p/12607492.html