在Hive中获取列值及其计数的不同组合

时间:2018-01-12 02:39:42

标签: hive

我有一个包含两列的表,名称和值。我想计算每个组合在Hive中重复的次数

          Alex  Biology
          Joe  Chemistry
          Alex  Physics
          Alex  Physics
          Joe   Physics
          Joe   Physics

我希望输出像

          Alex  Biology  1
          Joe  Chemistry 1
          Alex  Physics  2
          Joe   Physics  2

我尝试了类似计数的SQL查询               从tbl中选择不同的名称,值,计数(*) 但这失败了,因为错误“UDAF计数尚不支持”#39; 我尝试使用collect_set但是也不成功

        select x.name, x.value
           , num_arr
       from (
       select *
          , count(collect_set(name) over (partition by value)) num_arr
           from count_unique ) x

1 个答案:

答案 0 :(得分:0)

您可以使用简单的group_by功能并计算组合。试试这个

select x.name, x.value, count(*) from count_unique group by x.name,x.value;