7.2MySQL使用聚合函数查询

内容来自《MySQL从入门到精通》清华大学出版社一书的内容,随看书随打打笔记,会不断补充

有时候并不需要返回实际表中的数据,而只是对数据进行总结。

MySQL聚合函数
函数 作用
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值的和

7.2.1COUNT()函数

          COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。使用方法如下两种:

    1.COUNT(*)计算表中总的行数,不管某列有数值或者为空值。

    2.COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

例:查询customers表中总的行数


CREATE TABLE customers
(
  c_id      int       NOT NULL AUTO_INCREMENT,
  c_name    char(50)  NOT NULL,
  c_address char(50)  NULL,
  c_city    char(50)  NULL,
  c_zip     char(10)  NULL,
  c_contact char(50)  NULL,
  c_email   char(255) NULL,
  PRIMARY KEY (c_id)
);

INSERT INTO customers(c_id, c_name, c_address, c_city, c_zip,  c_contact, c_email) 
VALUES(10001, 'RedHook', '200 Street ', 'Tianjin',  '300000',  'LiMing', '[email protected]'),
(10002, 'Stars', '333 Fromage Lane', 'Dalian', '116000',  'Zhangbo','[email protected]'),
(10003, 'Netbhood', '1 Sunny Place', 'Qingdao',  '266000', 'LuoCong', NULL),
(10004, 'JOTO', '829 Riverside Drive', 'Haikou',  '570000',  'YangShan', '[email protected]');
 SELECT COUNT(*) AS cust_num  FROM customers;

7.2MySQL使用聚合函数查询_第1张图片

查询customers表中有电子邮箱的顾客的总数

7.2MySQL使用聚合函数查询_第2张图片

       两种方式对待NULL值的方式不同。即指定列的值为空的行被COUNT()函数忽略,但是如果不指定列,而在COUNT()函数中使用“*”,则所有记录都不会被忽略。

例:COUNT()函数和GROUP BY 关键字一起使用,用来计算不同分组中的记录总数

7.2MySQL使用聚合函数查询_第3张图片

7.2.2 SUM函数

     SUM()是一个求总和的函数,返回指定列值的综合。

例:在orderitems表中查询30005号订单一共购买的水果总量

7.2MySQL使用聚合函数查询_第4张图片

在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量

7.2MySQL使用聚合函数查询_第5张图片

SUM()函数在计算时,忽略列值为NULL的行。

7.2.3 AVG()函数

AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

例:在fruits表中,查询每一个供应商的水果价格的平均值

7.2MySQL使用聚合函数查询_第6张图片

AVG()函数使用时,其参数为要计算的列名称,如果要得到多个列的多个平均值,则需要在每一列上使用AVG()函数。

7.2.4MAX()函数

MAX()返回指定列中的最大值。

例:在fruits表中查找不同供应商提供的价格最高的水果

7.2MySQL使用聚合函数查询_第7张图片

MAX()函数不仅适用于查找数值类型,也可应用于字符类型。按照字符的ASCII码值大小进行比较,逐位比较。

7.2.5 MIN()函数

MIN()返回查询列中的最小值。

例:在fruits表中查找不同供应商提供的价格最低的水果

7.2MySQL使用聚合函数查询_第8张图片

你可能感兴趣的:(MySQL)