通过缓存,我的意思是是否对每个获取的行都调用子查询?
几个例子
-- 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;
而且
有没有区别
SELECT * FROM (
SELECT * FROM accounts
) AS subquery;
和
WITH everything_about_accounts AS (
SELECT * FROM accounts
)
SELECT * FROM everything_about_accounts;