T-SQL的高级查询详解--聚合函数
原创
©著作权归作者所有:来自51CTO博客作者乐园园的原创作品,谢绝转载,否则将追究法律责任
聚合函数的作用
在查询中会经常碰到的要求是取某些列的最大值、最小值、平均值等信息,有时候还需要计算出究竟查询到多少行数据项。这时候,就会使用到聚合函数。
常见的聚合函数Sum、AvgMax和Min、Count
1. Sum
Sum返回表达式中所有数值的总和,Sum只能用于数字类型的页,不能够汇总字符、日期等其他数据类型。
案例需求:查询用户‘13701418965’的合计欠费金额。
实现方法如下:
Use Tariffsmall
Go
Select Phonenumber,Sum(CHARGE)
From accountbill
Where isPaid=0 AND phoneNumber='13701418965'
Go
这种查询只能返回一个数值,因此,不能够直接与可能返回多行的列一起使用来进行查询,例如:
Use Tariffsmall
Go
Select Phonenumber,Sum(CHARGE)
From accountbill
Where isPaid=0 AND phoneNumber='13701418965'
Go
将报告错误信息。但是,在一个查询中可以同时使用多个聚合函数。
2. Avg
Avg函数返回表达式中所有数值的平均值,Avg函数也只能用于数字类型的页。
案例需求: 历史账单中2008年6月份的用户平均话费。
例如:
Select Avg(CHARGE) as 平均话费
From "history-accountbill"
Where accounttime between '2008-06-01 00:00:00‘ AND '2008-06-30 23:59:59'
3.Max和Min
Max返回表达式中的最大值,Min返回表达式中的最小值,它们都可以用于数字型、数字型以及日期/时间类型的列
案例需求,查询2008年6月电话话费单笔最高费用和单笔最低费用
例如:
Select Max(CHARGE) as 单笔最高话费,Min(CHARGE) as 单笔最低话费
From "history-accountbill"
Where accounttime
between '2008-06-01 00:00:00‘ and '2008-06-30 23:59:59'
4.Count
Count返回表达式中的非空值的计数,Count可以用于数字和字符类型的列。
另外,也可以使用星号(*)作为Count的表达式,使用星号可以不必指定特定的列而计算所有的行数。
案例需求: 在Tariffsmall数据库中查询欠费账单数,该如何统计账单个数:
例如:
Select Count(*) as 欠费账单数
From accountbill
Where ispaid=0
案例需求:如果查询欠费用户数,该如何统计不同用户号码的数量:
例如:
Select Count(Distinct phonenumber) as 欠费用户数
From accountbill
Where ispaid=0
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SQL数据库入门06:游标、存储过程的操作及T-SQL程序设计
本文介绍基于Microsoft SQL Server软件,实现数据库T-SQL语言程序设计,以及游标的定义、使用与存储过程的创建、信息查找的方法~
SQL 数据库 SQL Server MySQL 存储过程 -
T-SQL 常用排名函数
提纲:-- distinct 剔除重复项-- with ties 保留重复项-- newid()  
SQL SQL Server sql 分页 存储过程 -
T-SQL——函数——时间操作函数
SQL Server中的时间类型的精度及格式,同时主要介绍类SQL Server中所有操作日期的内置函数 ...
SQL 时间类型 sql 字符串 数据类型