第12章:汇总数据

表名:products  字段:product_id、product_name、product_price、vend_id(供应商)

12.1聚集函数:

我们常常需要汇总数据,而不是把数据检索出来,MySQL提供了专门的函数。

检索例子:

  • 确定表中行数
  • 获得表中行组的和
  • 找出表列

MySQL提供了5个聚集函数。

聚集函数:运行在行组上,计算和返回单个值的函数。

函数

说明

AVG()

返回某列的平均值

COUNT()

返回某列的行数

MAX()

返回某列的最大值

MIN()

返回某列的最小值

SUM()

返回某列值之和

12.1.1AVG()函数:

查出所有产品价格的平均值

SELECT AVG(product_price) AS avg FROM products

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

12.1.2COUNT()函数:

COUNT()有两种用法:

  • COUNT(*)对表中所有行的数目进行计数。
  • COUNT(column)对某一列的行的数目进行计数。

返回所有产品的数目:

SELECT COUNT(*) FROM products

返回供应商所在行的数目:

SELECT COUNT(vend_id) FROM products

注:COUNT(column)如果指定某一列,如果列上有null,则会忽略该行;但是COUNT(*)不会。

MAX():求某一列上的最大值(最大数值或日期,对于文本数据返回最后一行,会自动忽略null值行)。

MIN():求某一列上的最小值(最小值与最小日期,对于文本数据返回第一行,会自动忽略null值行)。

SUM():求某一列上的所有值之和(会自动忽略null值行)。

12.2聚集不同值:

以上5个函数都可以如下使用:

  • 对所有的行执行计算,指定ALL参数(默认指定,也就是说不需要指定)
  • 对包含不同的值,指定DISTINCT参数

查找所有不同价格的价格平均值

SELECT AVG(DISTINCT product_price) FROM products

注:如果指定列名,则DISTINCT只能用于COUNT()。

12.3组合聚集函数:

示例:

SELECT AVG(product_price) AS avg,COUNT(product_id) AS count,
MAX(product_price) AS max,MIN(product_price) AS min, SUM(product_price) AS sum FROM products

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿DD

《JS正则表达式教程》汇总

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用...

2926
来自专栏JAVA高级架构

【原创】自己动手循序渐进实现观察者模式

752
来自专栏数说戏聊

09-10章 汇总分组数据第9章

如果需要汇总数据而不是检索,SQL 提供专用函数,可用于检索数据,以便分析和报表生成。这种类型的检索例子有:

681
来自专栏软件测试经验与教训

Python学习笔记(13)--集合

3296
来自专栏闵开慧

曾经做过的40道程序设计课后习题总结(一)

曾经做过的40道程序设计课后习题总结(一) 课后习题目录 1 斐波那契数列 2 判断素数 3 水仙花数 4 分解质因数 5 杨辉三角 6 学习成绩查询...

3278
来自专栏Albert陈凯

MapReduce编程思想通俗理解

综述 Map(映射)与Reduce(化简)来源于LISP和其他函数式编程语言中的古老的映射和化简操作,MapReduce操作数据的最小单位是一个键值对。用户在使...

2778
来自专栏微信公众号:Java团长

Java回调机制(CallBack)详解

Java回调机制(CallBack),初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然...

742
来自专栏Crossin的编程教室

【每周一坑】神奇的九宫格

五一小长假大家应该玩的挺开心吧,还沉浸在假日的愉悦中么?请大家收收心,准备准备月底的端午节。 看看本周的题目吧,本周的题目由读者 @疯琴 提供,我们做了小小的改...

2657
来自专栏申龙斌的程序人生

零基础学编程010:最终可以输出完整的复利数据表了

我为了用Python打印这365行枯燥的《复利数据表》: (1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (1+0.01) ^...

2657
来自专栏Jackson0714

详解SQL集合运算

3288

扫码关注云+社区