SQLServer2005 中的幾個統(tǒng)計(jì)技巧
更新時(shí)間:2009年09月06日 01:20:42 作者:
先看下面的一個表格,我們從左邊的兩列信息來統(tǒng)計(jì)出右邊的結(jié)果。
在SQLServer中我們可以用over子句中來代替子查詢實(shí)現(xiàn)來提高效率,over子句除了排名函數(shù)之外也可以和聚合函數(shù)配合。實(shí)現(xiàn)代碼如下:
復(fù)制代碼 代碼如下:
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
相關(guān)文章
Win7 32/64位系統(tǒng)下安裝SQL2005和SP3補(bǔ)丁安裝教程[圖文]
今天有網(wǎng)友問win7 64系統(tǒng)下能安裝sql2005嗎,答案是肯定了,大家可以參考下面這篇文章試試2012-12-12
分頁存儲過程(一)使用sql2005的新函數(shù)構(gòu)造分頁存儲過程
分頁存儲過程一直是很多人經(jīng)常用到的東西,怎么樣才能設(shè)計(jì)一個既實(shí)用,又強(qiáng)大,還可以解決大數(shù)據(jù)量的分頁存儲過程呢?2010-05-05
安裝MSSql2005時(shí) “以前的某個程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起” 的解決辦法
安裝MSSql2005時(shí) “以前的某個程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起” 的解決辦法2010-02-02
SQL2005CLR函數(shù)擴(kuò)展-數(shù)據(jù)導(dǎo)出的實(shí)現(xiàn)詳解
本篇文章是對SQLServer中數(shù)據(jù)導(dǎo)出的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
sysservers 中找不到服務(wù)器,請執(zhí)行 sp_addlinkedserver 將該服務(wù)器添加到sysserver
sysservers 中找不到服務(wù)器,請執(zhí)行 sp_addlinkedserver 將該服務(wù)器添加到sysserver 錯誤的解決方法2011-09-09
SQL Server 2005 定時(shí)執(zhí)行SQL語句的方法
這篇文章主要介紹了SQL Server 2005 定時(shí)執(zhí)行SQL語句的方法,需要的朋友可以參考下2015-07-07

