汇总数据

Posted ao-yu-a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇总数据相关的知识,希望对你有一定的参考价值。

-- 聚集函数(方便分析和报表生成,其实也就是进行简单的统计学的处理,不需要返回原表来浪费时间)
/*
比如:
1.确定表中某些行数(或者满足某个条件或包含某个特定值的行数)
2.获得表中某些行的和
3.找出表列(或所有行或某些特定的行)的最大值、最小值、平均值
(在各种主要SQL实现中得到了相当一致的支持)
特点:对某些行运行的函数,计算并返回一个值
SQL聚集函数:
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和
*/

-- AVG()函数
/* 计算平均值,可以返回所有列的平均值,也可以返回特定列或行的平均值*/
SELECT AVG(prod_price) AS avg_price
FROM Products;

技术图片

#返回Products表中所有产品的平均价格 

#返回特定供应商所提供产品的平均价格
SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = ‘DLL01‘;

技术图片

#AVG()只能用于单个列,列名是函数的参数,对于多个列则要用多个AVG()
#AVG()函数忽略列值为NULL的行

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

SELECT COUNT(*) AS num_cust
FROM Customers;#返回Customers表中顾客的总数

技术图片

-- 只对具有电子邮件地址的客户计数
SELECT COUNT(cust_email) AS num_cust
FROM Customers;

技术图片

# 注意COUNT()指定列名,则忽略为空的行,使用星号*,则不忽略。

-- MAX()返回指定列中的最大值(要求指定列名)
SELECT MAX(prod_price) AS max_price
FROM Products;

技术图片

/* MAX()一般用来找出最大的数值或日期值,但是也可以用来返回任意列中的最大值,在文本列中返回该列排序后的最后一行
MAX()函数忽略列值为NULL的行*/

-- MIN()函数(返回指定列的最小值)(要求指定列)
SELECT MIN(prod_price) AS min_price
FROM Products;

技术图片

 

/* MIN()一般用来找出最小的数值或日期值,但是也可以用来返回任意列中的最小值,在文本列中返回该列排序后的最前面的行
MIN()函数忽略列值为NULL的行*/

-- SUM()函数 (用来返回指定列值的和)
SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;

技术图片

-- SUM()也可以用来合计计算值,得到总的订单金额
SELECT SUM(item_price*quantity) AS total_price
FROM OrderItems
WHERE order_num = 20005;

技术图片

#SUM()函数忽略列值为NULL的行 

-- 聚集不同值
/* AVG() COUNT() MAX() MIN() SUM()都可以如下使用
1.对所有行执行计算(默认ALL参数)
2.只包含不同的值,指定DISTINCT参数,去重 */
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM Products
WHERE vend_id = ‘DLL01‘;

技术图片

/* 再次强调DISTINCT后面必须使用列名,不能用于COUNT(*)
DISTINCT用于MIN()和MAX()没有意义 */

-- 组合聚集函数
#SELECT语句可根据需要包含多个聚集函数
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;

技术图片

#取别名时不要使用表中实际的列名,可能会产生模糊的错误信息 

 

以上是关于汇总数据的主要内容,如果未能解决你的问题,请参考以下文章

Excle数据透视如何隐藏数据透视表字段的分类汇总

如何删除透视表中的很多汇总行

Excel知识点与技巧5 -分类汇总 数据有效性

怎么全部取消excel2003数据透视表中的分类汇总

快速取消数据透视表的分类汇总行和总计行

用分类汇总,实现分页打印