MySQL汇总数据
来源:互联网 发布:淘宝小号在哪里买 编辑:程序博客网 时间:2024/06/03 17:34
说明:本文所使用的数据库样例表创建脚本下载地址:https://github.com/zhaoxd298/mysql_scripts
一、聚集函数
我们经常需要汇总数据而不是把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数,MySQL查询可用于检索数据,以便分析和报表生成。这种类型的检索例子有一下几种:
1.确定表中行数(或者满足某个条件或包含某个特定值的行数);
2.获得表中行组的和;
3.找出列表中的最大值、最小值和平均值。
为方便这种类型的检索,MySQL给出了5个聚集函数,如下表:
1.AVG()函数
AVG()可用来返回所有列的平均值,也可用来返回特定列或行的平均值。下面例子使用AVG()返回products表中所有产品的平均价格:
mysql> SELECT AVG(prod_price) AS avg_price -> FROM products;
执行结果:
下面例子返回特定供应商提供产品的平均价格:
mysql> SELECT AVG(prod_price) AS avg_price -> FROM products -> WHERE vend_id = 1003;
执行结果:
注意: AVG()只能确定单列的平均值,为了获得多个列的平均值必须使用多个AVG()函数。AVG()函数会忽略列值为NULL的行。
2.COUNT()函数
COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。COUNT()函数有两种使用方式:
1.使用COUNT(*)对表中行的数目进行计数,不管列中包含的是空值(NULL)还是非空值;
2.使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
下面的例子返回customers表中客户的总数:
mysql> SELECT COUNT(*) AS num_cust -> FROM customers;
执行结果:
下面例子只对具有电子邮件地址的客户计数:
mysql> SELECT COUNT(cust_email) AS num_cust -> FROM customers;
执行结果:
3.MAX()函数
MAX()返回指定列中的最大值。MAX()要求必须指定列名,使用方法如下:
mysql> use crashcourse;mysql> SELECT MAX(prod_price) AS max_price -> FROM products;
执行结果:
MAX()一般用来找出最大的数值或日期值,但MySQL允许它返回任意列中的最大值,包括返回文本列中的最大值。MAX()函数忽略列值为NULL的行。
4.MIN()函数
MIN()的功能与MAX()相反,它返回指定列的最小值,MIN()也必须要指定列名,使用方法如下:
mysql> SELECT MIN(prod_price) AS min_price -> FROM products;
执行结果:
MIN()与MAX()类似,也允许返回任意列的最小值。MIN()也忽略列值为NULL的行。
5.SUM()函数
SUM()用来返回指定列值的和,使用方法如下:
mysql> SELECT SUM(quantity) AS items_ordered -> FROM orderitems -> WHERE order_num = 20005;
执行结果:
SUM()也可以用来合计计算值。下面例子中,合计每项物品的item_price*quantity,得出总的订单金额:
mysql> SELECT SUM(item_price*quantity) AS total_price -> FROM orderitems -> WHERE order_num = 20005;
执行结果:
二、聚集不同值
以上5个聚集函数都可以如下使用:
1.对所有的行执行计算:指定ALL参数或不给参数(因为ALL是默认行为);
2.只包含不同的值:指定DIATINCT参数。
下面的例子使用AVG()函数返回特定供应商的产品的平均价格,但它使用了DISTINCT参数,因此平均值只考虑各个不同的价格:
mysql> SELECT AVG(DISTINCT prod_price) AS avg_price -> FROM products -> WHERE vend_id = 1003;
执行结果:
可以看到,在使用了DISTINCT后,计算所得的平均值avg_price比较高,因为有多个物品具有相同的较低价格,排除它们提升了平均价格。
组合聚集函数
目前为止所有聚集函数荔枝都只涉及单个函数。但实际上SELECT语句可以根据需要包含多个聚集函数,请看下面例子:
mysql> 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;
执行结果:
- MySQL汇总数据
- [MYSQL -12]汇总数据
- MySQL汇总数据
- mysql 汇总数据 学习笔记
- Mysql存储过程数据汇总(一)
- Mysql存储过程数据汇总(二)
- mysql数据导入、导出方法汇总
- MySQL数据汇总与聚集函数
- mysql 数据操作命令汇总 hibernate操作
- Mysql高级查询-----汇总和分组数据
- MYSQL学习笔记(八)汇总数据
- MySQL之汇总数据(AVG,COUNT,MAX,MIN,SUM)
- mysql大量数据操作 内存不足 等等问题汇总
- mysql 查询多个类型多条数据并汇总
- Hadoop数据经Hive汇总计算之后导出到Mysql
- mysql之数据处理函数与数据汇总函数
- mysql之数据处理函数与数据汇总函数
- mysql之数据处理函数与数据汇总函数
- 腾讯副总裁马斌:构建连接式智慧安全
- 近两年都有谁投资了无人机?看完这张图你就知道了
- 独角兽还在吸金?科技投资界迎来“美丽新世界”
- Workday,一条搅动SaaS圈的“鲶鱼”
- HTML <meta> 标签
- MySQL汇总数据
- flex布局切记,最外层要加:{{flex:1}}
- 用soapUI测试GET/POST接口
- 2--spring bean 的作用域scope 设置;bean的初始化和销毁方法,profile配置不同环境实例化不同的bean,自定义事件,自定义监听器
- C禁用控制台
- java中栈内存和堆内存
- 越来越多汽车厂商投资打车应用,他们想干什么?| 智驾周报
- 滴滴又获融资,可那些老问题怎么办?
- HDOJ 1048 The Hardest Problem Ever