I have a CTE, something like
CREATE VIEW someView AS WITH foo AS (
SELECT id FROM bar
JOIN ...
), foo2 AS (
SELECT whatever FROM bar2 ...
), ... AS ( ...
), lastResult AS (
...
) SELECT * FROM lastResult;
I want to add an id column to the last SELECT Statement (SELECT * FROM lastResult;). On an existing table you would do it like this
ALTER TABLE lastResult ADD COLUMN id SERIAL PRIMARY KEY;
Is that possible with a CTE and a View?
CodePudding user response:
I think you can use the ROW_NUMBER. here is a sample
CREATE VIEW someView AS WITH foo AS (
SELECT id FROM bar
JOIN ...
), foo2 AS (
SELECT whatever FROM bar2 ...
), ... AS ( ...
), lastResult AS (
...
) SELECT * ,
ROW_NUMBER () OVER (ORDER BY Your_Column) as Id
FROM
FROM lastResult;
