如何解决基于计数的排名hiveql
我想按会话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'尚不支持的地方
解决方法
如果要按对话计数对对话进行排名,则不要在窗口函数中使用partition by
子句:
select conversationid,rank() over(order by count(*) desc) rnk
from mytable
group by conversationid
这会将排名1
分配给最频繁的会话。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。