今天有
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...