2017-03-29 33 views
0

我有一個表像這樣:獲得獨特的值出現在一個表中的次數

Email | Number 
a  | 0.5 
a  | 1 
a  | 1.1 
b  | 5 
b  | 3.7 

我想保留相同的表格佈局,但得到的基礎上,唯一的電子郵件的實例數數列中按照排名順序:

Email | Number | RankOrder 
a  | 0.5 | 3 
a  | 1  | 2 
a  | 1.1 | 1 
b  | 7.7 | 1 
b  | 6  | 2 
+0

什麼RDBMS是什麼? MySQL的? – xQbert

+0

可能你有你的答案,但是你可以編輯這個問題,以便輸出邏輯上跟隨輸入嗎? –

+0

輸出確實遵循輸入。這是在teradata – NBC

回答

2

您可以用窗口Row_Number()做到這一點:

Select Email, Number, 
     Row_Number() Over (Partition By Email Order By Number Desc) As RankOrder 
From LikeSo; 
2

如果我理解正確的話,你想要的row_number()功能(這是大多數數據庫的ANSI標準可用功能):

select email, number, 
     row_number() over (partition by email order by number desc) as rankorder 
from t; 
相關問題