hive基于计数的排名(hiveql)

q8l4jmvw  于 2021-04-03  发布在  Hive
关注(0)|答案(1)|浏览(488)

我想根据对话ID的出现次数进行排名,所以第一次出现的次数为1,第二次为2,第三次为3等等。
我得到了一个语法错误,所以很可能是什么地方出了问题。

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

编译语句时出错:失败:semanticexception未能将windowing调用分解成组。至少有1个组必须只依赖于输入列。还要检查循环依赖。底层错误:org.apache.hadoop.hive.ql.parse.semanticexception:第7:54行尚未支持udaf'count'的地方。

sqyvllje

sqyvllje1#

如果你想按对话数排名,那么你就不需要在窗口函数中使用 "partition by "子句。

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

这将为最频繁的对话分配等级1

相关问题