MSSQL內的RANK 用法範例

以下介紹兩種 MS-SQL的Rank用法:
有時候我們會遇到再同一個搜尋結果中要產生不同的排序欄位,也就是同一個select搜尋datarow中可以依需求新增兩個排序後的欄位。

如下所示:藍色字體按照Amount欄位產生,紅色字體除了以QtyKG排序,再以年度yy來區分(partition by..)。

select
'年度區域銷售' as fName
,rank() OVER ( ORDER BY Amount desc, yy) as rankAmount
,dense_rank() OVER ( PARTITION BY yy ORDER BY QtyKG desc) as rankQtyKG
,* from [mytable]
order by yy, area, QtyKG desc



這是從MS-SQL 2005版本以上的功能,排序問題在資料庫中變的相當簡單。
感謝MavisLiao資料提供。



沒有留言:

張貼留言