如有字段a,b,c 如下表:
a | b | c |
A1 | B3 | C1 |
A2 | B3 | C2 |
A3 | B2 | C3 |
A1 | B2 | C4 |
A2 | B2 | C5 |
A3 | B1 | C6 |
A2 | B1 | C7 |
A1 | B1 | C8 |
若想按a字段分组并按b字段排名得到如下结果:
rank a b c
1 A1 B1 C8
2 A1 B2 C4
3 A1 B3 C1
1 A2 B1 C7
2 A2 B2 C5
3 A2 B3 C2
1 A3 B1 C6
2 A3 B2 C3
sql语句如下:
select row_number() over (partition by a order by b) "rank",a,b,c
from **
where **