如:row_number、rank、dense_rank
三個分析函式都是按照col1分組內從1開始排序
row_number() 是沒有重複值的排序(即使兩天記錄相等也是不重複的),可以利用它來實現分頁
dense_rank() 是連續排序,兩個第二名仍然跟著第三名
rank() 是跳躍拍學,兩個第二名下來就是第四名
示例:
declare結果集:@t1table
( sequence
int,
name
varchar(20
) , score
int)
insert
into
@t1select1,
'甲',
7union
allselect2,
'甲',
8union
allselect3,
'甲',
8union
allselect4,
'甲',
8union
allselect5,
'甲',
9union
allselect1,
'乙',
10union
allselect2,
'乙',
6union
allselect3,
'乙',
10union
allselect4,
'乙',
6union
allselect5,
'乙',
8select
sequence ,
name ,
score ,
row_number()
over ( order
by sequence, score ) as
rownumber1 ,
row_number()
over ( order
by sequence, score desc ) as
rownumber2 ,
rank()
over ( order
by score ) as
rnk ,
dense_rank()
over ( order
by score ) as
densernk ,
ntile(
15) over ( order
by score ) as
bucket
from
@t1
t sql中的COUNT函式
1 count函式的定義 count函式的定義可見msdn。定義如下 count 那麼count 有兩種使用方式count expression 和count 它返回乙個對乙個表按某列計數的值。以此可以得出乙個結論 count 返回值總是大於或等於count expression 的返回值。在應用中...
t sql中的COUNT函式
t sql中的count函式 count函式的定義可見msdn。定義如下 count 那麼count 有兩種使用方式count expression 和count 它返回乙個對乙個表按某列計數的值。1.count 返回表的行數。它不會過濾null和重複的行。2.count expression 會過...
t sql語句排序的程式bug
最近同事處理乙個客戶發現乙個bug,在排序的時候出現問題 可能是資料庫的bug field002這裡有個 2008 03 02 的排序,其他都是按field002來排序,個別不是按field002排序。執行語句 select from select id,field001 asfield001,fi...