SQLServer2005中的几个统计技巧
发布时间:2020-12-12 15:34:47 所属栏目:MsSql教程 来源:网络整理
导读:先看下面的一个表格,我们从左边的两列信息来统计出右边的结果。 ? 在SQLServer中我们可以用over子句中来代替子查询实现来提高效率,over子句除了排名函数之外也可以和聚合函数配合。实现代码如下: use tempdb go if ( object_id ( 'tb' ) is not null ) ???
先看下面的一个表格,我们从左边的两列信息来统计出右边的结果。 ? 在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' , 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拆分字符串函数 及应用
- sql-server – 聚簇索引与非聚簇索引?
- sql-server-2008 – sql server 2008中“Merge”子句的性能
- MySQL优化之使用连接(join)代替子查询
- sql-server – 在创建表后调用insert时出现“无效的列名”错
- 数据库设计 – 在关系数据库中实现全局唯一标识符的优点/缺
- sql-server – 语法检查所有存储过程?
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC DR
- AD域中成员服务器SQL 2008 Server安装配置图文教程
- win10安装Sql Server 2014图文教程
推荐文章
站长推荐
热点阅读