Apache Hive中的子查询

时间:2014-12-05 14:33:16

标签: azure hive subquery

我有一个包含以下结构的表

col1   col2   col3   col4   category
300    200    100     20      1
200    100     30     300     2
400    100     100    70      1
100     30     200     100    1

现在我正在尝试计算col1总行数的百分比是< = 100,对于col2,总行数的百分比是< = 50,依此类推,从类别I开始只想选择类别1

所以生成的表应该看起来像

col1(<=100)  col2(<=50)
x%             x%

我试过这样的事情,但不知道如何为这个

编写子查询
SELECT COUNT(*) AS Total, COUNT(value1)* 100 /Total) AS col1(<=100) FROM table1 WHERE Category=1 GROUP BY value1 HAVING value1 <=100

看起来我需要多个选择查询,PLZ帮助

1 个答案:

答案 0 :(得分:0)

您可以尝试使用CASE语句,如下所示:

“SELECT SUM(col1&lt; 100 THEN 1 ELSE 0 END)/ COUNT(col1)AS pct_col1,         SUM(col2&lt; 50 THEN 1 ELSE 0 END)/ COUNT(col2)AS pct_col2  FROM table1;“

由于 Arani