SQL排名视图和分组依据

时间:2012-05-02 08:57:57

标签: mysql sql

有人可以告诉我如何创建一个视图,该视图对于按其他列分组的值列有一个额外的RANK列吗?

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

问题是VIEW计算的'RANK'应按GROUP s(例如0,1,2)分组。

ID
BALANCE
GROUP2
GROUP1
GROUP0
RANK

感谢。

编辑----------------------- 对不起,我应该多解释一下。 RANK列是每组(GROUP0,GROUP1,GROUP2)的“按余额排名”

所以我希望看起来像

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

感谢。

1 个答案:

答案 0 :(得分: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