我想知道如果id号具有相同的值,是否有重复提升的方法?
细节:
假设我有一个像这样的id值:
|-----|
| id |
|-----|
| 1 |
| 1 |
| 2 |
| 3 |
| 3 |
| 4 |
| 5 |
| 2 |
| 4 |
| 5 |
|-----|
然后我想像这样提升那个id:
|-----|
| id |
|-----|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
|-----|
我不知道怎么说,也不知道keyword
在Google上找到它,所以我希望我的问题对每个人都有用,以防出现同样的问题。
答案 0 :(得分:2)
在ANSI标准SQL中,您可以使用row_number()
来实现此目的:
select id
from (select t.*, row_number() over (partition by id order by id) as seqnum
from t
) t
order by seqnum, id;
老实说,子查询不是必需的,所以你可以这样做:
select id
from t
order by row_number() over (partition by id order by id), id;