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
相关文章
SqlServer 2005 T-SQL Query 学习笔记(2)
SqlServer 2005 T-SQL Query 学习笔记(2)2010-02-02mdf文件和ldf文件导入到sql server 2005实现语句
导入mdf文件和ldf文件到数据库是网站搬家或者是初学者学习源码是必要的一步,接下来为大家详细介绍实现sql语句,感兴趣的你可不要错过了哈希望可以帮助到你2013-03-03SQLServer 2008中通过DBCC OPENTRAN和会话查询事务
无论是有意无意,如果事务在数据库中保持打开,则它会阻塞其他进程对修改后的数据进行操作。同样,对事务日志进行备份也只会截断不活动事务的那部分事务日志,所以打开的事务会导致日志变多(甚至达到物理限制),直到事务被提交或回滚。2011-05-05SQL2005重新生成索引的的存储过程 sp_rebuild_index
本文分享了一个笔者自己整理的存储过程,帮助技术人员快速的重新生成数据库的索引,以减轻重复的工作,有需要的朋友,可以参考一下。2016-03-03
最新评论