SQLServer2005 中的几个统计技巧
更新时间:2009年09月06日 01:20:42 作者:
先看下面的一个表格,我们从左边的两列信息来统计出右边的结果。
在SQLServer中我们可以用over子句中来代替子查询实现来提高效率,over子句除了排名函数之外也可以和聚合函数配合。实现代码如下:
复制代码 代码如下:
use tempdb
go
if (object_id ('tb' ) is not null )
drop table tb
go
create table tb (name varchar (10 ), val int )
go
insert into tb
select 'aa' , 10
union all select 'aa' , 20
union all select 'aa' , 20
union all select 'aa' , 30
union all select 'bb' , 55
union all select 'bb' , 45
union all select 'bb' , 0
select *
, 排名 = rank ()over (partition by name order by val )
, 占比 = cast (val * 1.0 / sum (val )over (partition by name ) as decimal (2 , 2 ))
, 距最大 = val - max (val )over (partition by name )
, 距最小 = val - min (val )over (partition by name )
, 距平均 = val - avg (val )over (partition by name )
from tb
相关文章
Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]
今天有网友问win7 64系统下能安装sql2005吗,答案是肯定了,大家可以参考下面这篇文章试试2012-12-12
分页存储过程(一)使用sql2005的新函数构造分页存储过程
分页存储过程一直是很多人经常用到的东西,怎么样才能设计一个既实用,又强大,还可以解决大数据量的分页存储过程呢?2010-05-05
安装MSSql2005时 “以前的某个程序安装已在安装计算机上创建挂起” 的解决办法
安装MSSql2005时 “以前的某个程序安装已在安装计算机上创建挂起” 的解决办法2010-02-02
sysservers 中找不到服务器,请执行 sp_addlinkedserver 将该服务器添加到sysserver
sysservers 中找不到服务器,请执行 sp_addlinkedserver 将该服务器添加到sysserver 错误的解决方法2011-09-09


最新评论