当基础查询只有单个组时执行GROUP BY

时间:2016-07-12 09:10:23

标签: hive

我在某个地方遇到了愚蠢的场景,有人创建了一个HIVE查询,如: -

SELECT count(*),year,month from table where year=2016 and month=7 group by year,month;

这听起来很愚蠢。显然,因为我们已经过滤了行,所以只存在group by子句中指定的列的单个组合。此查询等同于下面提到的简单查询: -

 SELECT count(*),year,month from table where year=2016 and month=7

很明显,在这种情况下不需要GROUP BY。现在我的问题是,HIVE会在第一次查询时真的尝试进行GROUP BY,或者它会理解尝试做一个小组的过程是微不足道的吗?如果确实尝试了,那么与第二个版本相比,查询组会慢一些吗?

1 个答案:

答案 0 :(得分:0)

需要小组来制作一个小组来计算。 由于计数而没有该组,如果您删除了计数,它将返回大量的记录2016年7月而不仅仅是一个