基于计数的排名(hiveql)

时间:2020-10-06 19:58:10

标签: hive count hql hiveql window-functions

我想按会话ID的出现次数对其进行排名,因此第一个出现的事件排名为1,第二个出现的事件排名为2,第三个为3,依此类推。

我遇到语法错误,因此很可能出现了问题

select 
    conversationid, 
    rank() over (partition by conversationid order by count(*) desc) as rnk
  from my_table
  group by conversationid

编译语句时出错:失败:SemanticException无法将窗口调用分解为组。至少1组必须仅取决于输入列。还要检查循环依赖性。潜在错误:org.apache.hadoop.hive.ql.parse.SemanticException:行7:54 UDAF'count'尚不支持的地方

1 个答案:

答案 0 :(得分:0)

如果要按对话计数对对话进行排名,则不要在窗口函数中使用partition by子句:

select conversationid, rank() over(order by count(*) desc) rnk
from mytable
group by conversationid

这会将排名1分配给最频繁的会话。

相关问题