文档详情

mysql汇总数据函数.doc

发布:2024-10-11约1.9千字共5页下载文档
文本预览下载声明

PAGE

PAGE1

mysql汇总数据函数

--聚集函数(方便分析和报表生成,其实也就是进行简单的统计学的处理,不需要返回原表来浪费时间)

/*

比如:

1.确定表中某些行数(或者满足某个条件或包含某个特定值的行数)

2.获得表中某些行的和

3.找出表列(或所有行或某些特定的行)的最大值、最小值、平均值

(在各种主要SQL实现中得到了相当一致的支持)

特点:对某些行运行的函数,计算并返回一个值

SQL聚集函数:

AVG()返回某列的平均值

COUNT()返回某列的行数

MAX()返回某列的最大值

MIN()返回某列的最小值

SUM()返回某列值之和

*/

--AVG()函数

/*计算平均值,可以返回所有列的平均值,也可以返回特定列或行的平均值*/

SELECTAVG(prod_price)ASavg_price

FROMProducts;

#返回Products表中所有产品的平均价格

#返回特定供应商所提供产品的平均价格

SELECTAVG(prod_price)ASavg_price

FROMProducts

WHEREvend_id=#39;DLL01#39;;

#AVG()只能用于单个列,列名是函数的参数,对于多个列则要用多个AVG()

#AVG()函数忽略列值为NULL的行

--COUNT()函数

/*COUNT()确定表中行的数目或符合特定条件的行的数目

有两种使用方式:

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

2.COUNT(column)对特定列中具有的值的行进行计数,忽略NULL值*/

SELECTCOUNT(*)ASnum_cust

FROMCustomers;#返回Customers表中顾客的总数

--只对具有电子邮件地址的客户计数

SELECTCOUNT(cust_email)ASnum_cust

FROMCustomers;

#注意COUNT()指定列名,则忽略为空的行,使用星号*,则不忽略。

--MAX()返回指定列中的最大值(要求指定列名)

SELECTMAX(prod_price)ASmax_price

FROMProducts;

/*MAX()一般用来找出最大的数值或日期值,但是也可以用来返回任意列中的最大值,在文本列中返回该列排序后的最后一行

MAX()函数忽略列值为NULL的行*/

--MIN()函数(返回指定列的最小值)(要求指定列)

SELECTMIN(prod_price)ASmin_price

FROMProducts;

/*MIN()一般用来找出最小的数值或日期值,但是也可以用来返回任意列中的最小值,在文本列中返回该列排序后的最前面的行

MIN()函数忽略列值为NULL的行*/

--SUM()函数(用来返回指定列值的和)

SELECTSUM(quantity)ASitems_ordered

FROMOrderItems

WHEREorder_num=20005;

--SUM()也可以用来合计计算值,得到总的订单金额

SELECTSUM(item_price*quantity)AStotal_price

FROMOrderItems

WHEREorder_num=20005;

#SUM()函数忽略列值为NULL的行

--聚集不同值

/*AVG()COUNT()MAX()MIN()SUM()都可以如下使用

1.对所有行执行计算(默认ALL参数)

2.只包含不同的值,指定DISTINCT参数,去重*/

SELECTAVG(DISTINCTprod_price)ASavg_price

FROMProducts

WHEREvend_id=#39;DLL01#39;;

/*再次强调DISTINCT后面必须使用列名,不能用于COUNT(*)

DISTINCT用于MIN()和MAX()没有意义*/

--组合聚集函数

#SELECT语句可根据需要包含多个聚集函数

SELECTCOUNT(*)ASnum_items,

MIN(prod_price)ASprice_min,

MAX(prod_price)ASprice_max,

AVG(prod_price)ASprice_avg

FROMProducts;

#取别名时不要使用表中实际的列名,可能会产生模糊的错误信息

显示全部
相似文档