在Hive中划分不同的选择计数查询

时间:2016-09-23 22:14:20

标签: hive hiveql

我有两个表,想要找到它们之间不同记录的百分比。

TableA(item int,value string)
TableB(item int,value string)

我写了这个与MYSQL完美配合的查询

SELECT 100*
       (SELECT COUNT(*) 
          FROM TableA A, 
               TableB B
         WHERE A.item=B.item
               AND A.value!=B.value
       )
       /
       (SELECT COUNT(*) 
          FROM TableA A
       )
 ;

但对于HIVE中的类似情况,此查询无法正常工作,但NoViableAltException失败 我如何在HIVE中进行这些计数划分?

1 个答案:

答案 0 :(得分:0)

您可以在两个子查询中获取值,然后在外部查询中计算:

select
    100 * different / total
  from
    (select
         count(*) as different
       from
         a, b
       where
         a.id = b.id and a.value <> b.value) t1,
    (select
         count(*) as total
       from
         a) t2