-2

我有下表

ID      
12     
12    
25    
25    
78    
78    
78  

而且我需要能够在ID更改时增加计数器值。

ID    **COUNTER**  
12     1
12     1
25     2
25     2
78     3
78     3
78     3

如何才能做到这一点?甚至可能吗?

4

1 回答 1

8

您可以使用dense_rank()

select id,
  dense_rank() over(order by id)  Counter
from yourtable

请参阅带有演示的 SQL Fiddle

结果:

| ID | COUNTER |
----------------
| 12 |       1 |
| 12 |       1 |
| 25 |       2 |
| 25 |       2 |
| 78 |       3 |
| 78 |       3 |
| 78 |       3 |
于 2013-01-17T15:54:17.310 回答