I'm looking at somebody else's code and they've got about 200 lines where they use
CREATE TABLE with a
SELECT STATEMENT, just to finish it with the statement
WITH NO DATA
And then directly underneath, the same queries are used with an
INSERT statement. The final table have over 400k rows. I just wanted to know why this would be seen/if this is best practice? And if it isn't best practice, what would be a better way to do it?
You don't include the code, but from your description you have:
create table mytable as (select <...>) WITH NO DATA;
insert into mytable (select <...>);
select <...> are exactly the same.
That being the case, no this is not a best practice nor even a good idea as the
select <...> has to be evaluated twice. Granted the time required is likely trivial compared to the time required to load the table.