在我的Hive表中,我有以下列:
date, SessionID, url, time_spent
20160901 119 www.hello.com/hehe 10
20160901 121 www.abc.com/xyz 5
20160901 119 www.google.com 12
我需要找到所有日期的每个sessionid的网址数。 我尝试了一些
的方法Select sessionid, count(url), sum(time_spent) from my_table where date between '20160901' and '20160905' group by sessionid
...它确实在很短的时间内工作,但每天有数百万的sessionid,我需要获得一年的数据,所以这种方法不起作用。
我认为计数的平均表示可行,所以我尝试了这个:
select count(sessionid), average(count(url)), avg(sum(time_spent)) from my_table where date between '20160901' and '20160905' group by sessionid;
但是
失败了尚未支持UDAF'count'的地方
有没有办法在这里获得平均值?
答案 0 :(得分:0)
你的SQL错误。你应该使用sql:
select sessionid, count(sessionid), average(count(url)), avg(sum(time_spent)) from my_table where date between '20160901' and '20160905' group by sessionid;