聚合函数的作用
在查询中会经常碰到的要求是取某些列的最大值、最小值、平均值等信息,有时候还需要计算出究竟查询到多少行数据项。这时候,就会使用到聚合函数。
常见的聚合函数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
本文出自 “乐成的技术笔记” 博客,谢绝转载!