假设我有以下查询:
select a.model, a.engine_size, b.engine_size from (
select model, engine_size
from cars
where number_of_doors = 4
) a
inner join (
select model, engine_size
from cars
where number_of_doors = 4
) b
on (a.model = b.model);
我在这里重复一个子查询。我只是想知道以下是否更“最优”,或者重复子查询的结果是否会自动缓存?
with features as (
select model, engine_size
from cars
where number_of_doors = 4
)
select a.model, a.engine_size, b.engine_size
from features a
inner join features b
on (a.model = b.model);
这两者中的任何一个都会更有效率吗?
最佳答案
一种方法是进行自连接,但这种情况没有任何意义
select a.model, a.engine_size,b.engine_size
from cars a
join cars b
on (a.model = b.model)
where a.number_of_doors = 4
关于sql - Hive - 优化自连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26685574/