#sql #postgresql
#sql #postgresql
Вопрос:
Результат моего запроса выглядит следующим образом:
| A | B |
|-------|
| 1 | 2 |
| 1 | 4 |
| 1 | 6 |
| 1 | 9 |
| 1 | 1 |
| 1 | 6 |
| 1 | 9 |
Теперь я хочу увеличить столбец A на индекс результирующей таблицы, чтобы результат стал таким:
| A | B |
|-------|
| 2 | 2 |
| 3 | 4 |
| 4 | 6 |
| 5 | 9 |
| 6 | 1 |
| 7 | 6 |
| 8 | 9 |
Как я могу это сделать?
Спасибо!
Комментарии:
1. что вы подразумеваете под индексом?
2. Почему вы хотите начать с 2? Вы всегда хотите начинать с 2 или потому, что b начинается с 2?
Ответ №1:
Вы хотите row_number()
select (row_number() over (order by a) 1) as A, b
from table t;
Комментарии:
1. Нет необходимости заключать выражение в круглые скобки
Ответ №2:
Может быть, что-то вроде этого:
SELECT
(row_number() OVER (ORDER BY A) A) AS columnAIndex,
columnB
FROM ...
У меня здесь не установлен клиент PostgreSQL, поэтому я не тестировал этот запрос.