SQL取得排名語法

2021-09-30 03:15:59 字數 1031 閱讀 9351

今天有

5個業務

10月份的業績是

甲:15萬乙

:20萬

丙:30萬丁

:10萬

戊:15

萬老闆要找出業績前

3名的業務

一般直覺的想法是

select top 3 

業務名稱,金額

from

業績order by

金額desc

會得到丙30乙

20甲15也有可能會得到丙30

乙20戊15

但是今天有可能有n個第

3名所以用top 3

應該不符合需求

如果改用

select top 3 with ties 

業務名稱,金額

from

業績order by

金額desc

會得到4筆資料丙30

乙20戊15

甲15with ties

就是用在這個時候

,需撘配

top n

還有order by

會讓order by

最後一筆的結果一樣的

data

也出來以上面的例子

因為order by

金額desc

所以最後一筆

是15 ,

所以金額

=15的也都會出現

而產生top 3

但是會有

4筆資料的結果

------------------------------------------

高階版再加上排名

select top 3 with ties 

業務名稱,金額

,rank() over(order by

金額)

as 排名

from

業績order by

金額結果

丙30 1

乙20 2

戊15 3

甲15 3

SQL語法 Unicode長度的取得

現在為了因應全球化的趨勢,越來越多公司採用unicode的編碼模式做為資料庫的編碼,不只可以補足big 5不足,還可以整合與編碼大部份文字系統。但因unicode並不如big 5的編碼長度是固定的,所以有時需判斷資料可能的長度,才能建置出正確且實用的資料庫字段長度。特別是在由外部資料匯入unicod...

Sql排名和分組排名

在很多時候,都有排名這個功能,比如排行榜,並且還需要分頁的功能,一般可以再select的時候按照某一字段 oorder by xx desc,這樣limit 查詢就可以得到排名資訊,但是有時候是需要多表連線,或者是有乙個隨機檢視,在頁面上並不是按照排名公升降序。這個時候就需要用sql來實現排名。先準...

sql分組排名

資料庫teradata 班級科目成績表 create multiset table pd portal.aaa no fallback no before journal,no after journal,checksum default banji varchar 40 character set...