2012-05-02 7 views
0

他の列でグループ化された値列に対して追加のRANK列を持つビューを作成する方法を教えていただけますか?SQLランキングビューとグループ

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

問題は、ビューがそれらGROUP Sによってグループ化しなければならない計算する 'RANK' である(例えば0、1、2)。

ID 
BALANCE 
GROUP2 
GROUP1 
GROUP0 
RANK 

ありがとうございます。

EDIT ----------------------- もっと詳しく説明する必要があります。 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. 

必要に応じて、例えば、OVER句内で順序を追加することができます。

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

uh oh .. MySQLはまだウィンドウ機能をサポートしていません。それはうまく動作しません –

+1

タグの編集の前にどこに答えます。私は時間がある場合、私はmysqlでクエリを試してみましょう。 –