表1::::
A | B |
2000 | 1 |
2001 | 1 |
2002 | 1 |
2003 | 0 |
2004 | 0 |
2005 | 0 |
2006 | 1 |
2007 | 1 |
2008 | 0 |
表2::::
A | B | C |
2000 | 1 | 1 |
2001 | 1 | 2 |
2002 | 1 | 3 |
2003 | 0 | 1 |
2004 | 0 | 2 |
2005 | 0 | 3 |
2006 | 1 | 1 |
2007 | 1 | 2 |
2008 | 0 | 1 |
select A, B, row_number() over (partition by B,D order by A) C
from (
select A, B, A - row_number() over (partition by B order by A) D
from temp
) E
order by A;