Hadoop 计算配置单元中列中类别的百分比
我在蜂巢中有一个表,Hadoop 计算配置单元中列中类别的百分比,hadoop,hive,hdfs,Hadoop,Hive,Hdfs,我在蜂巢中有一个表,颜色,看起来像这样: id cname 1 Blue 2 Green 3 Green 4 Blue 5 Blue Blue 60% Green 40% 我需要帮助编写一个配置单元查询,该查询给出cname列中每种颜色的百分比。看起来像这样的东西: id cname 1 Blue 2 Green 3 Green 4 Blue 5 Blue Blue 60% Green 40% 提前谢谢 使用分析功能: select cname, concat
颜色
,看起来像这样:
id cname
1 Blue
2 Green
3 Green
4 Blue
5 Blue
Blue 60%
Green 40%
我需要帮助编写一个配置单元查询,该查询给出cname列中每种颜色的百分比。看起来像这样的东西:
id cname
1 Blue
2 Green
3 Green
4 Blue
5 Blue
Blue 60%
Green 40%
提前谢谢 使用分析功能:
select cname, concat(pct, ' %') pct
from
(
select (
count(*) over (partition by cname)/
count(*) over ()
)*100 as pct,
cname
from (--Replace this subquery with your table
select stack (5,
1, 'Blue',
2, 'Green',
3, 'Green',
4, 'Blue',
5, 'Blue' ) as (id, cname)
) colors
)s
group by cname, pct;
结果:
OK
Blue 60.0 %
Green 40.0 %
只需将colors
子查询替换为您的表即可