hive 中的多列进行group by查询方法
来源:互联网 发布:淘宝商城男装裤子 编辑:程序博客网 时间:2024/04/30 05:05
gid,sid,user,roleid,time,status,map_id,num
其中time字段为时间戳形式的,统计要求为将各个字段按照每个小时的num总数进行统计
开始的时候写的hive SQL为
select gid,sid,user,roleid,time,status,map_id,sum(num) from test group by gid,sid,user,roleid,from_unixtime(time,'yyyyMMddHHmmss'),9,2),time,status,map_id;
在hive中执行后发现结果不对,hive是按照time字段进行的group by,于是将group by中的time字段去掉
select gid,sid,user,roleid,time,status,map_id,sum(num) from test group by gid,sid,user,roleid,from_unixtime(time,'yyyyMMddHHmmss'),9,2),status,map_id;
hive返回错误FAILED: Error in semantic analysis: Line 1:27 Expression not in GROUP BY key time
如果修改sql为
select gid,sid,user,roleid,from_unixtime(time,'yyyyMMddHHmmss'),9,2),status,map_id,sum(num) from test group by gid,sid,user,roleid,from_unixtime(time,'yyyyMMddHHmmss'),9,2),status,map_id;
可以按照小时进行汇总统计,可是字段time不是想要显示的结果,最后经过google查到方法
select gid,sid,user,roleid,collect_set(time)[0],status,map_id,sum(num) from test group by gid,sid,user,roleid,substr(from_unixtime(time,'yyyyMMddHHmmss'),9,2),status,map_id;
参考网址http://stackoverflow.com/questions/5746687/hive-expression-not-in-group-by-key
看来对hive的udf函数还是掌握的不够,需要多学习
- hive 中的多列进行group by查询方法
- hive 中的多列进行group by查询方法
- #hive#hive中的Distinct,group by
- group by 分组查询 返回多列问题
- Hive高级查询(group by、 order by、 join等)
- 07-Hive高级查询order by、group by
- Hive高级查询(group by、 order by、 join等)
- Hive高级查询(group by、 order by、 join等)
- Hive高级查询(group by、 order by、 join等)
- Hive高级查询(group by、 order by、 join等)
- LINQ TO SQL 中的group by多表查询
- HIVE group by 和count(distinct)进行对比
- hive group by
- Hive group by操作
- hive Group By 语法
- hive group by
- Hive group by操作
- Hive-2.HiveQL查询中where和group by语句
- 100个 Linux命令
- C# 自定义控件绘图 未处理 System.AccessViolationException异常
- UI基础控件(二)-------- UITextField
- 支撑4.5亿活跃用户的WhatsApp架构概览
- 关于“无状态的HTTP连接提供有状态的连接”
- hive 中的多列进行group by查询方法
- JAVA中堆栈和内存分配原理
- 搜索标签切换 属性 要访问的url
- 面试问题总结
- 【git】 创建一个新分支
- 解决IE版本兼容问题
- 关于A20系统启动后,无屏幕显示; cubietruck开发板
- C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
- 几种块存储简单介绍!!!