SQL:计数的平均值

时间:2016-09-08 19:56:57

标签: sql count hive average

在我的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'的地方

有没有办法在这里获得平均值?

1 个答案:

答案 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;