计算配置单元表中列之间的百分比

时间:2015-08-18 17:56:33

标签: hive

我有一个有三列的蜂巢表; id,num1,num2

**id  num1  num2**
1   23    34
2   1     0
3   5    2
4   6    7
  1. 我需要总数的计数,其中num1和num2之间的百分比变化超过20% 即绝对((num1 - num2)/ num2)> = .20

  2. 我还需要处理零,因为它们中的任何一个都可能为零,这可能导致NAN

  3. 所以上述数据的输出将是: [2,3]因为id 2和3的num1 num2差异超过20%

    非常感谢。

1 个答案:

答案 0 :(得分:1)

  select sum(mycount)
  from
      (select sum(case when abs((num1 - num2)/num2) >= .2 
            and num2 <> 0 then 1 else 0 end) as mycount
            , id
      from mytable
      group by id
      ) t
   ;