By cached I mean if there is a call to subquery for every fetched row?
Few examples
-- Simple query
SELECT * FROM (
SELECT * FROM accounts
) AS subquery;
-- Subquery with function
SELECT * FROM (
SELECT AVG(id_groups) FROM accounts
) AS subquery;
-- More messy queries
SELECT * FROM (
SELECT id_groups, AVG(id_accounts) OVER (PARTITION BY id_groups)
FROM accounts
) AS subquery
GROUP BY subquery.id_groups, subquery.avg;
And moreover
Is there a difference between
SELECT * FROM (
SELECT * FROM accounts
) AS subquery;
And
WITH everything_about_accounts AS (
SELECT * FROM accounts
)
SELECT * FROM everything_about_accounts;