第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 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

Oracle 12c 多租户专题|CDB元数据内幕

原文链接 https://blog.dbi-services.com/oracle-12c-cdb-metadata-a-object-links-intern...

42611
来自专栏电光石火

mybatis获取update的id

平常我门都是更新数据,用更新的条件再查询一次,得到更新的记录。这样我门就进行了两次数据库操作,链接了两次数据库。增加了接口的处理事件,因为链接数据库是很耗时的操...

6578
来自专栏撸码那些事

MySQL——优化嵌套查询和分页查询

嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。嵌套查询写起来简单,也容易理解。但是,有时候可以...

922
来自专栏闻道于事

Oracle数据库(三)表操作,连接查询,分页

复制表 --复制表 create table new_table as select * from Product --复制表结构不要数据 create tab...

2888
来自专栏杨建荣的学习笔记

简单实用的sql小技巧(第二篇)(r3笔记第86天)

ASCII和CHR 在平时的工作中,可能会在sql或者pl/sql块中嵌入特殊字符,比如空格,回车之类。这个时候可以使用ascii和chr来做字符和ascii码...

2918
来自专栏文渊之博

理解OVER子句

    简介     Over子句在SQLServer 2005中回归,并且在2012中得到了扩展。这个功能主要结合窗口函数来使用;也可以在序列函数“NEXT ...

2069
来自专栏程序猿

SQL优化法则小记

SQL优化技巧 1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,...

3549
来自专栏java架构师

【SQL Server】系统学习之二:索引优化

页大小8192个字节,行限制为8060字节(大型对象除外)。 包含varchar nvarchar varbinary sql_variant(8012,obj...

2366
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch Span Query跨度查询

ES基于Lucene开发,因此也继承了Lucene的一些多样化的查询,比如本篇说的Span Query跨度查询,就是基于Lucene中的SpanTermQue...

2757
来自专栏GreenLeaves

SQL练习之求解填字游戏

SELECT * FROM dbo.spt_values ? 假设我们需要找具有以下特点的单词: (1)第二个字母:a (2)第四个字母:l (3)一共只有5个...

18110

扫码关注云+社区