SQL中的汇总数据(其实是聚集函数)
2016-04-15 20:32
344 查看
聚集函数(aggregate function):对某些行运行的函数,计算并返回一个值,(作用是总计的和总数的)
所以这里的聚集是 “总数的,总计的” 意思
在数据库应用中, 需要汇总表中的数据,而不是实际数据本身,所以返回实际表数据纯属浪费时间和处理资源,我们实际想要的是汇总信息,例如:
1. 确定表中的行数(或者满足某个条件或包含某个特定值的行数)
2.获得表中某些行的和
3.找出表列的最大值、最小值和平均值
一共有5个聚集函数,
AVG() 返回某列的平均值
COUNT()返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM()返回某列值之和
1. AVG()函数
只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出,但只能用于单个列,为了获得多个列的平均值,必须使用多个AVG()函数,并且这个函数会忽略列值为NULL的行。
AVG( [DISTINCT | ALL] column)
使用DISTINCT会去重,这样算平均数更加严谨科学,否则会有重数计算会有影响。
SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = "DLL01"
2.COUNT()
此函数进行计数,可确定表中行的数目或符合特定条件的行的数目。有两种使用方式:
(1COUNT( *)对表中行的数目进行计数,不管表列中包含的是空值NULL还是非空值,不管行中各列有什么值。并且不能用DISTINCT
(2)COUNT( [DISTINCT | ALL] column)对特定列中具有值得行进行计数,忽略NULL值。使用DISTINCT会去重
3.MAX()和MIN()函数
MAX( [DISTINCT | ALL] column) 都会忽略列值为 NULL 的行。其实这两个函数有没有 DISTINCT都没有什么卵用。
4.SUM()函数
会返回指定列值的和(总计)也会忽略值为 NULL 的行。
quantity和 item_price为表中的行,SUM()函数中可以有 计算字段
SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;
还有这么使用的:
SELECT SUM(quantity*item_price) AS total_price
//合计每项物品的[b][b]quantity*item_price,得出总的订单金额。[/b]
[/b]
FROM OrderItems
WHERE order_num = 20005;
aggregate | 英 [ˈægrɪgət] | 美 [ˈæɡrɪɡɪt] |
n. | 骨料; 合计; 聚集体; 集料(可成混凝土或修路等用的); |
adj. | 总数的,总计的; 聚合的; [地] 聚成岩的; |
vt. | 使聚集,使积聚; 总计达; |
在数据库应用中, 需要汇总表中的数据,而不是实际数据本身,所以返回实际表数据纯属浪费时间和处理资源,我们实际想要的是汇总信息,例如:
1. 确定表中的行数(或者满足某个条件或包含某个特定值的行数)
2.获得表中某些行的和
3.找出表列的最大值、最小值和平均值
一共有5个聚集函数,
AVG() 返回某列的平均值
COUNT()返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM()返回某列值之和
1. AVG()函数
只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出,但只能用于单个列,为了获得多个列的平均值,必须使用多个AVG()函数,并且这个函数会忽略列值为NULL的行。
AVG( [DISTINCT | ALL] column)
使用DISTINCT会去重,这样算平均数更加严谨科学,否则会有重数计算会有影响。
SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = "DLL01"
2.COUNT()
此函数进行计数,可确定表中行的数目或符合特定条件的行的数目。有两种使用方式:
(1COUNT( *)对表中行的数目进行计数,不管表列中包含的是空值NULL还是非空值,不管行中各列有什么值。并且不能用DISTINCT
(2)COUNT( [DISTINCT | ALL] column)对特定列中具有值得行进行计数,忽略NULL值。使用DISTINCT会去重
3.MAX()和MIN()函数
MAX( [DISTINCT | ALL] column) 都会忽略列值为 NULL 的行。其实这两个函数有没有 DISTINCT都没有什么卵用。
4.SUM()函数
会返回指定列值的和(总计)也会忽略值为 NULL 的行。
quantity和 item_price为表中的行,SUM()函数中可以有 计算字段
SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;
还有这么使用的:
SELECT SUM(quantity*item_price) AS total_price
//合计每项物品的[b][b]quantity*item_price,得出总的订单金额。[/b]
[/b]
FROM OrderItems
WHERE order_num = 20005;
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程