实例详解Sql Server 所有聚合函数--【叶子】

一、Sql Server 中有哪些聚合函数?

提到聚合函数大家一定会首先想到最常用的:

1、 求个数:count

2、 求总和:sum

3、 求最大值:max

4、 求最小值:min

5、 求平均值:avg

聚合函数中有四个函数是我一直以来几乎就没有用到过的:

1、 求方差:var

2、 求总体方差:varp

3、 标准偏差:stdev

4、 求总体标准偏差:stdevp

除此以外Sql Server中还有几个集合函数:

1、 求校验和:checksum_agg

2、 求个数:count_big

3、 用于测试 cube 或 rollup 空值:grouping

 

二、聚合函数在什么情况下使用?

聚合函数只能在以下位置作为表达式使用:

1、 select 语句的选择列表(子查询或外部查询)。

2、 compute 或 compute by 子句。

3、having 子句。

 

三、聚合函数count和count_big的区别?

count_big的用法与count 函数类似。两个函数唯一的差别是它们的返回值。count_big始终返回 bigint 数据类型值。count始终返回 int 数据类型值。

 

四、应用实例

  1. if object_id('[tb]'is not null drop table [tb]  
  2. create table [tb] (id int,num int)  
  3. insert into [tb]  
  4. select 1,92 union all  
  5. select 2,94 union all  
  6. select 3,96 union all  
  7. select 4,98 union all  
  8. select 5,100  
  9.   
  10. --求个数  
  11. select count(*) as 行数from [tb] /*5*/  
  12.   
  13. --求总和  
  14. select sum(num) as 总和from [tb] /*480*/  
  15.   
  16. --求最大值  
  17. select max(num) as 最大值from [tb] /*100*/  
  18.   
  19. --求最小值  
  20. select min(num) as 最小值from [tb] /*92*/  
  21.   
  22. --求平均值  
  23. select avg(num) as 平均值from [tb] /*96*/  
  24.   
  25. --求方差  
  26. select var(num) as 方差from [tb] /*10*/  
  27.   
  28. --求总体方差  
  29. select varp(num) as 总体方差from [tb] /*8*/  
  30.   
  31. --求标准偏差  
  32. select stdev(num) as 标准偏差from [tb] /*3.16227766016838*/  
  33.   
  34. --求总体标准偏差  
  35. select stdevp(num) as 总体标准偏差from [tb] /*2.82842712474619*/  
  36.   
  37. --求校验和  
  38. select checksum_agg(num) as 校验和from [tb] /*100*/  
  39.   
  40. --求个数  
  41. select count_big(num) as 行数from [tb] /*5*/  
  42.   
  43. --grouping  
  44. select isnull(ltrim(id),'合计'as id, sum(num) as num, grouping(id) as 'sgin'  
  45. from [tb] group by id with rollup  
  46. /*  
  47. id           num         sgin  
  48. ------------ ----------- ----  
  49. 1            92          0  
  50. 2            94          0  
  51. 3            96          0  
  52. 4            98          0  
  53. 5            100         0  
  54. 合计          480         1  
  55. */  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值