hiveql—对配置单元中不同select count查询的划分

fjnneemd  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(302)

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

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
       )
 ;

但是对于配置单元中的类似场景,此查询不起作用,并且失败 NoViableAltException 我怎样才能在Hive中进行这些计数划分?

ifsvaxew

ifsvaxew1#

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

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

相关问题