Добавить индекс к результату запроса PostgreSQL

#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, поэтому я не тестировал этот запрос.