от
Я добавил номера строк в таблицу (
merged
) таким образом:
SELECT ROW_NUMBER() OVER (ORDER BY Pclass) RowNum, *
FROM merged;
Который возвращает:
1|1|0|58|0|0|146.5208|0|20|0|1|1|0.53043592
2|1|0|31|1|0|113.275|0|23|0|1|1|0.671198682
3|1|0|38|0|0|227.525|0|29|0|1|1|0.888825796
4|1|0|36|0|2|71|0|23|1|0|1|0.49853335
Однако когда я затем проверяю
merged
, номера строк больше не присутствуют (обратите внимание, что это приводит к неупорядоченным результатам, но, тем не менее, показывает, что я делаю):
SELECT * FROM merged;

2|0|24|0|0|13|0|38|1|0|0|0.505845678
3|1|61|0|0|6.2375|0|25|1|0|0|0.128146005
2|0|17|0|0|12|0|21|0|1|1|0.465261004
2|1|18|0|0|11.5|0|26|1|0|0|0.458356337
Я подозреваю, что способ достичь этого - обновить
merged
, добавив новый столбец и затем добавив номера строк в указанный столбец, но я не знаю, как это сделать. Таким образом, мой вопрос таков: как я могу сохранить номера строк в
merged
?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Оператор
SELECT
не изменит таблицу
merged
. Обновление существующей таблицы будет немного сложным, и я думаю, что нет тривиального способа сделать это. Поэтому проще создать новую таблицу, удалить предыдущую и переименовать новую в старую. Этот код должен работать:
CREATE TABLE new_merged
  AS (SELECT ROW_NUMBER() OVER (ORDER BY Pclass) RowNum, * FROM merged); 

DROP TABLE merged;

ALTER TABLE new_merged RENAME TO merged;
    
...