匿名通过本文主要向大家介绍了SQLServer2005,统计技巧,等相关知识,希望本文的分享对您有所帮助
先看下面的一个表格,我们从左边的两列信息来统计出右边的结果。
在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
您可能想查找下面的文章:
- 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
- sqlserver2005自动创建数据表和自动添加某个字段索引
- SqlServer2005 数据库同步配置图文详解
- sqlserver2005打造自动备份的维护计划图解教程
- 关于SQLServer2005的学习笔记 XML的处理
- sqlserver2005 TSql新功能学习总结(数据类型篇)
- sqlserver2005 xml字段的读写操作
- winXP系统安装SQLServer2005开发版具体过程与注意问题
- sqlserver2005 安装图解教程以及SQL 2005 SP3补丁安装图文教程
- SQLServer2005 Output子句获取刚插入的ID值