sql - Hive - 优化自连接

标签 sql hadoop hive

假设我有以下查询:

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/

相关文章:

c# - 在 DataRow 中设置特定列

r - 如何安装 Apache spark 并为 R 启动和运行它?

hadoop - 配置单元表导出到其他 hadoop 集群或集群 + distcp 中的配置单元导出?

sql - 如何在不单独指定每一列的情况下在所有行中搜索文本

apache-spark - Spark性能问题与Hive

java - 从两个不同的表插入一个表并具有自动增量值

mysql - 在单个查询 Mysql 中获取相应 ID 的计数

sql - postgresql 中的自动提交是否意味着您不能拥有事务 block ?

java - 确定 EMR 作业在 Map 与 Reduce 任务上花费了多少时间的最佳方法是什么?

java - 从Hadoop分布式缓存读取文件时出现FileNotFoundExcepton