MySQL

MySQL——汇总数据和分组数据(八)

2017-06-16  本文已影响188人  开心糖果的夏天

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

汇总数据

一、聚集函数

1.AVG()函数

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

SELECT AVG(prod_price) AS avg_price FROM products;

此语句的输出如下图所示:



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

2.COUNT()函数

COUNT()函数进行计数。可利用COUNT()函数确定表中行的数目或者符合特定条件的行的数目。
COUNT()函数有两种使用方式:
(1)使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
(2)使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

SELECT COUNT(*) AS num_cust FROM customers;

此语句的输出如下图所示:


3.MAX()函数

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

SELECT MAX(prod_price) AS max_price FROM products;

此语句的输出如下图所示:

4.MIN()函数

MIN()返回指定列中的最小值。MIN()要求指定列名。

SELECT MIN(prod_price) AS min_price FROM products;

此语句的输出如下图所示:

5.SUM()函数

SUM()函数用来指定列值的总和。

SELECT SUM(quantity) AS items_ordered FROM orderitems WHERE order_num=20005;

此语句的输出如下图所示:

二、聚集不同值

只包含不同的值,指定DISTINCT参数。

SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id=1003;

此语句的输出如下图所示:

三、组合聚集函数

SELECT COUNT(*) AS num_items,MIN(prod_price) AS price_min,  MAX(prod_price) AS max_price,AVG(prod_price) AS price_avg FROM products;

此语句的输出如下图所示:

分组数据

一、创建分组

分组是在SELECT语句的GROUP BY子句中建立的。

SELECT vend_id,COUNT(*)AS num_prods FROM products GROUP BY vend_id;

此语句的输出如下图所示:

二、过滤分组

HAVING非常类似于WHERE。唯一的差别就是WHERE过滤行,而HAVING过滤分组。

SELECT cust_id,COUNT(*)AS orders FROM orders GROUP BY cust_id HAVING COUNT(*)>=2;

此语句的输出如下图所示:

SELECT vend_id,COUNT(*) AS num_prods FROM products WHERE prod_price>=10 GROUP BY vend_id HAVING COUNT(*)>=2;

此语句的输出如下图所示:

上一篇 下一篇

猜你喜欢

热点阅读