MYSQL 学习笔记记录整理之一聚集函数

 
函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和
1、AVG()函数,可以返回所有列的平均值,也可以返回特定列或者行的平均值。
例子:
SELECT AVG(prod_price) AS avg_price 别名 FROM products;
说明:返回表中所有产品的平均价格。
 
SELECT AVG(prod_price) AS avg_price 别名 FROM products WHER ven_id=1003;
说明:返回特定供应商所提供产品的平均价格。
 
注意: 只能用于单个列 avg函数只能用来确定特定数值列的平均值,而且列名必须作为函数给出。为了获取多个列的平均值,必须使用多个avg函数
2、COUNT()函数
COUNT()函数进行计数,可以用来确定表中行的数目或者符合特定条件的行的数目。
有两种使用方式:
a、使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值还是非空值
b、使用COUNT(colum)对特定列中具有值的行进行计数,忽略空值。
例子:
SELECT COUNT(*) AS num_cust from customers;
说明:返回customers表中客户的总数
 
SELECT COUNT(cust_email) AS num_cust from customers;
说明:只对具有电子邮件地址的客户计数、
 
3、MAX()函数,最大值,要求指定列名。
例子:
SELECT MAX(prod_price) AS max_price FROM products;
 
4、MIN()函数
返回指定列的最小值,要求指定列名。
例子:
SELECT MIN(prod_price) AS min_price FROM products;
 
5、SUM()函数
返回指定列值的和(总数)
例子:
SELECT SUM(quantity) AS items_ordered FROM orderitems WHERE order_num=20005;
说明:检索所订购物品的总数(所有quantity之和)
 
SUM()函数也可以用来合计计算值。例子:
SELECT SUM(item_price*quantity) AS total_price FROM orderitems WHERE order_num=20005;
 
6、DISTINCT()聚集不同值
用于只包含不同的值。
例子:
SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE ven_id=1003;
说明:此平均值只考虑各个不同的价格
注意:如果指定列名,则DISTINCT 只能用于COUNT()。DISTINCT不能用于COUNT(*),因此不允许使用COUNT(DISTINCT),否则会产生错误。类似的,DISTINCT必须指定列名,不能用于计算或者表达式。
 
 
7、组合聚集函数。
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;
posted @ 2017-12-01 21:18  十年之光  阅读(312)  评论(0编辑  收藏  举报