Hive Sum MAX Over Demo(单月访问次数和总访问次数)

A,2015-01,5
A,2015-01,15
B,2015-01,5
A,2015-01,8
B,2015-01,25
A,2015-01,5
A,2015-02,4
A,2015-02,6
B,2015-02,10
B,2015-02,5
A,2015-03,16
A,2015-03,22
B,2015-03,23
B,2015-03,10
B,2015-03,1

求每个用户单月的访问次数和总访问次数
create external table if not exists t_access(
uname string comment ‘用户名‘,
umonth string comment ‘月份‘,
ucount int comment ‘访问次数‘
) comment ‘用户访问表‘
row format delimited fields terminated by ","
location "/user/hive/t_access";

load data local inpath "/root/tmonthcount.txt" into table t_access;

select tba.*,tbb.allCount
from
(
select uname,umonth,sum(ucount) as tuconut
from t_access
group by uname,umonth) tba
join (select uname,sum(ucount) as allCount from t_access group by uname) tbb on tbb.uname=tba.uname
;

select uname,umonth,ucount,sum(ucount) over(partition by uname,umonth) as tuconut,sum(ucount) over(partition by uname) as allCount
from t_access;

A 2015-01 33 81
A 2015-02 10 81
A 2015-03 38 81
B 2015-01 30 79
B 2015-02 15 79
B 2015-03 34 79

每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数,结果数据格式如下

select tmp.*
,max(tmp.tuconut) over(partition by tmp.uname order by tmp.umonth rows between unbounded preceding and current row) as maxCount
,sum(tmp.tuconut) over(partition by tmp.uname order by tmp.umonth rows between unbounded preceding and current row) as allCount
from
(select uname,umonth,sum(ucount) as tuconut
from t_access
group by uname,umonth) tmp;

A 2015-01 33 33 33
A 2015-02 10 33 43
A 2015-03 38 38 81
B 2015-01 30 30 30
B 2015-02 15 30 45
B 2015-03 34 34 79

原文地址:http://blog.51cto.com/6000734/2321012

时间: 2024-10-09 00:29:46

Hive Sum MAX Over Demo(单月访问次数和总访问次数)的相关文章

Hive Sum MAX MIN聚合函数

数据准备cookie1,2015-04-10,1cookie1,2015-04-11,5cookie1,2015-04-12,7cookie1,2015-04-13,3cookie1,2015-04-14,2cookie1,2015-04-15,4cookie1,2015-04-16,4创建数据库及表create database if not exists cookie;use cookie;drop table if exists cookie1;create table cookie1(c

6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化

 1组函数 avg(),sum(),max(),min(),count()案例: selectavg(sal),sum(sal),max(sal),min(sal),count(sal) from emp / 截图: 2 组函数和null在一起 案例:求员工的平均奖金 错误sql: select avg(comm) 方式1,sum(comm)/count(comm)方式2,sum(comm)/count(*) 方式3 from emp; 截图: 错误原因: select count(comm

sum max(hdu 1003)

观察可以发现,0,1,2,--,n结尾的分组中, maxsum a[0] = a[0] maxsum a[1] = max( a[0] + a[1] ,a[1])  = max( maxsum a[0] + a[1] ,a[1]) maxsum a[2] = max( max ( a[0] + a[1] + a[2],a[1] + a[2] ),a[2]) = max(  max( a[0] + a[1] ,a[1]) + a[2] , a[2]) = max(  maxsum a[1] + a

Number of dynamic partitions exceeded hive.exec.max.dynamic.partitions.pernode

动态分区数太大的问题:[Fatal Error] Operator FS_2 (id=2): Number of dynamic partitions exceeded hive.exec.max.dynamic.partitions.pernode. hive> insert into table sogouq_test partition(query_time) select user_id,query_word,query_order,click_order,url,query_time

nginx 禁止ip访问只允许域名访问

nginx 禁止ip访问只允许域名访问 在nginx 配置文件中,再添加一个server段 server{listen 80 default;return 500;}

Chapter6_访问权限控制_访问权限修饰词

Java中有四种访问权限,public,private,protected和包访问权限,它们是置于类中每一个成员之前的定义,无论是一个域还是一个方法,下面一一介绍. 一.包访问权限 如果不提供任何访问权限修饰词,这意味着是包访问权限.即当前包中的所有其他类对那个包访问权限的成员都有访问权限,但对于这个包之外的所有类,这个类是private的,所以处于一个编译单元中的所有类之间,都是可以互相访问的.包访问权限允许将包内所有的类组合起来,以便于它们之间可以轻松地相互访问.总的来说,取得对某成员的访问

VirtualBox 设置静态ip,实现虚拟机和宿主机互相访问,并能访问网络

虚拟机支持3种常用网络模式: NAT模式,虚拟机可以访问宿主机和网络,宿主机不能访问虚拟机. Host-Only模式,虚拟机和宿主机可以互相访问,但是虚拟机不能访问网络. Bridge模式:虚拟机作为独立的计算,和宿主机同样连接到外部网络.如果局域网中是DHCP,将虚拟机设置为静态ip,存在ip冲突的风险. 为将VirtualBox 设置为静态ip,实现虚拟机和宿主机互相访问,并能访问网络,我们可以将NAT和Host-Olny 模式混合使用,步骤如下: 1.配置2块网卡:一个选择[网络地址转换(

判断访问者是内网访问还是外网访问

//域登录  判断是内网还是外网请求 public function regip($ip){ $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地

lanproxy可支持任何 tcp 上层协议(ssh 访问、web 服务器访问、远程桌面...)

lanproxy 是一个将局域网个人电脑.服务器代理到公网的工具,目前仅支持 tcp 流量转发,可支持任何 tcp 上层协议(ssh 访问.web 服务器访问.远程桌面...).与目前市面上的花生壳.TeamView.GoToMyCloud 等等类似,但胜在开源,不受限制. 作者:@小飞 地址:http://git.oschina.net/fengfei/lanproxy http://www.oschina.net/news/80909/2016-oschina-git-top-50