Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 配置单元ql如何使用多重计数函数进行查询并使用它们进行除法_Hadoop_Hive - Fatal编程技术网

Hadoop 配置单元ql如何使用多重计数函数进行查询并使用它们进行除法

Hadoop 配置单元ql如何使用多重计数函数进行查询并使用它们进行除法,hadoop,hive,Hadoop,Hive,我的问题是: 我有一个表,其中有一些记录,如(名称、日期、类型)。假设我有三种类型a、b和c。现在我想把每种类型都计算为带有一些限制的类型_count,并用count(a)/count(b)除法得出一个百分比结果,而a和中的限制是不同的,我该如何处理?谢谢我的代码如下所示: SELECT name, count(a), count(a)/count(b) from table where ... select name, sum(if(condition_for_a,

我的问题是: 我有一个表,其中有一些记录,如(名称、日期、类型)。假设我有三种类型a、b和c。现在我想把每种类型都计算为带有一些限制的类型_count,并用count(a)/count(b)除法得出一个百分比结果,而a和中的限制是不同的,我该如何处理?谢谢我的代码如下所示:

   SELECT name, count(a), count(a)/count(b)
   from table
   where ...
select
  name,
  sum(if(condition_for_a, 1, 0)),
  sum(if(condition_for_a, 1, 0)) / sum(if(condition_for_b, 1, 0))
from table
where ...
可以在select中进行一些子查询吗?像这样

select name, count(a), count(a)/ (select count(b) from table where restriction_for_b)
from table
where retriction_for_a

如果我正确理解了您的问题,您可以将计数替换为
sum(如果(条件,1,0))
。大概是这样的:

   SELECT name, count(a), count(a)/count(b)
   from table
   where ...
select
  name,
  sum(if(condition_for_a, 1, 0)),
  sum(if(condition_for_a, 1, 0)) / sum(if(condition_for_b, 1, 0))
from table
where ...