hive的union all语句的顺序问题

有这么一个查询:

select -count(*) from
(select distinct ${hiveconf:colname} from ${hiveconf:tablename}
where ${hiveconf:latest_status}) t
union all
select count(*) from ${hiveconf:tablename}
where ${hiveconf:latest_status} and (${hiveconf:colname}='NULL' or ${hiveconf:colname} is null);

查询结果却是下面这样:

id _c0
0 26316870
1 -1187700

很明显,count(*)的结果必然非负,第一个count(*)的前面我人为加了负号以便区别。

可以看出union all出来的结果的顺序与代码中的顺序不一致,因此在使用union all语句的时候,需要格外注意,尤其是对结果的顺序敏感的话,应当通过适当的方法来加以标识,比如本例中对其中一个加了负号

你可能感兴趣的:(hive的union all语句的顺序问题)