chapter12:汇总数据

聚集函数

常常需要汇总数据而不用把它们实际检索出来。

  • 确定表中行数;
  • 获得表中行组的和;
  • 找出表列的最大值、最小值和平均值
函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 某列的最大值
MIN() 某列的最小值
SUM() 某列值之和

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

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 某列的最大值
MIN() 某列的最小值
SUM() 某列值之和

例:

AVG()

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

COUNT():注意NULL值,如果指定列名则空的行被忽略,如果是*则不忽略。

SELECT COUNT(*) AS num_cust
FROM customers;

SELECT COUNT(cust_email) AS num_cust
FROM customers;

其他函数用法相同,注意MAX()和MIN()都忽略NULL值,SUM()可以汇总计算值。

SELECT SUM(item_price*quantity) AS total_price
FROM orderitems
WHERE order_num = 20005;

聚集不同值

聚集函数的DISTINCT的使用只在MySQL5之后的版本可用。

  • 对所有的行执行计算,指定ALL参数,默认;
  • 只包含不同的值,指定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 price_max,
       AVG(prod_price) AS price_avg
FROM products;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL与MySQL简介 数据库基础 从SQL的角度来看,数据库就是一个以某种有组织的方式存储的数据集合。我们可以采...
    heming阅读 3,202评论 1 8
  • 前言 读《sql必知必会 第四版》随手做的笔记,写的比较乱,可读性并不好,读的是中文版,翻译过来的感觉有点怪怪的。...
    _老徐_阅读 656评论 0 0
  • 1. SQL 简介 SQL 的目标 理想情况下,数据库语言应允许用户: 建立数据库和关系结构 完成基本数据管理任务...
    板蓝根plank阅读 2,392评论 0 11
  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 529评论 0 0
  • “来来往往断肠人,何苦衷于不了情” 来的魑魅魍魉,孤魂野鬼。 鬼之所以是鬼,是因为他们痴。 不愿在奈何桥上喝下孟婆...
    木廿一阅读 355评论 0 0