2012-05-02 61 views
0

任何人都可以請告訴我如何創建一個視圖,其中有一個額外的RANK列的值列按其他列分組?SQL排名視圖和組由

ID 
BALANCE 
GROUP2 
GROUP1 
GROUP0 
unique (GROUP0, GROUP1, GROUP2) 

的問題是 'RANK' 該視圖將計算應由那些GROUP s爲單位進行分組(比如0,1,2)。

ID 
BALANCE 
GROUP2 
GROUP1 
GROUP0 
RANK 

謝謝。

編輯----------------------- 對不起,我應該多解釋一下。 的RANK列是爲每個組(GROUP0,GROUP1,GROUP2)

的`通過平衡排名」所以,我想一個VEW看起來像

ID BALANCE GROUP0 GROUP1 GROUP2 RANK 
----------------------------------------- 
    1000  0  0  0  1 
    999  0  0  0  2 
    1000  1  0  0  1 
    999  1  0  0  2 

感謝。

+2

能否請您加入到標籤的數據庫的名稱和版本? –

+1

你可以添加一個試圖做你想做的事情但失敗的查詢嗎? –

+0

可能重複的[如何在MySQL中執行分組排名](http://stackoverflow.com/questions/532878/how-to-perform-grouped-ranking-in-mysql) – eggyal

回答

2

不是一個明確的問題。 這是你想要的嗎?

Select 
    id, 
    balance, 
    group1, 
    group2, 
    group3, 
    row_number() over(partition by group1, group2, group3) as rank 
from your_table. 

您可以根據需要通過在子句中添加一個命令,例如:

 row_number() over(partition by group1, group2, group3 order by id) as rank 
+3

呃哦.. MySQL不支持窗口功能呢。那將不起作用 –

+1

標籤編輯之前的答案。如果我有時間,我會在MySQL中嘗試查詢。 –