我将行号添加到了表(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
?
答案 0 :(得分:1)
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;