T-SQL的高级查询详解--聚合函数

聚合函数的作用
在查询中会经常碰到的要求是取某些列的最大值、最小值、平均值等信息,有时候还需要计算出究竟查询到多少行数据项。这时候,就会使用到聚合函数。
常见的聚合函数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
 

本文出自 “乐成的技术笔记” 博客,谢绝转载!

你可能感兴趣的:(函数,查询,详解,聚合,高级)