【Hive报错】Hive报错Expression Not In Group By Key解决方法

2023-11-08

SQL例如以下会报错:

select sum(time) as time, roadCoding, upstreamOrDownstream  
from historicalroaddata where ...

报以下roadcoding、upstreamOrDownstream的错误

FAILED: SemanticException [Error 10025]: Line 1:12 Expression not in GROUP BY key ‘roadcoding′

解决方法:使用collect_set()函数包围非group by字段collect_set(roadcoding)[0]

select sum(time) as time,collect_set(roadcoding)[0],  collect_set(upstreamOrDownstream)[0]
from historicalroaddata where...

问题原因:

在group by子句中,select 查询的列,要么需要是 group by中的列,要么得是用聚合函数(比如 sum、count 等)加工过的列。不支持直接引用非 group by的列。这一点和 MySQL 有所区别。

1.Hive不允许直接访问非group by字段;
2.对于非group by字段,可以用Hive的collect_set函数收集这些字段,返回一个数组;
3.使用数字下标,可以直接访问数组中的元素;

MySQL:

select dept.name,count(*) num from empt
join dept on empt.deptno=dept.deptno 
where empt.sal<=51
group by empt.deptno 
order by num desc limit 1

hiveSQL:

select collect_set(dept.dname)[0],count(*) num from empt
join dept on empt.deptno=dept.deptno 
where empt.sal<=51
group by empt.deptno 
order by num desc limit 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Hive报错】Hive报错Expression Not In Group By Key解决方法 的相关文章

随机推荐

  • 菌群多样性分析报告

    参考链接https www docin com p 2107733531 html 在开始实验项目之前 明确实验流程 一步一步获取实验结果 以可视化工具展现结果 并加以生物学意义上的分析 获取完整的分析报告 下面给出菌群多样性分析报告中应包
  • 基于深度相机的三维重建技术

    本文转载自http www bugevr com zblog id 14 原创作者bugeadmin 转载至我的博客 主要是为了备份 日后查找方便 谢谢原创作者的分享 三维重建 3D Reconstruction 技术一直是计算机图形学和计
  • [Spring学习]07 Spring AOP面向切面编程

    目录 一 什么是Aop 二 Aop相关术语 三 Aop的优点 一 什么是Aop OOP Object Oriented Programming 面向对象编程 AOP Aspect Oriented Programming 面向切面编程 OO
  • conda下多环境(environment)及spyder jupyter lab配置

    结论速递 借助conda进行多environment环境管理 并且这些enviroment都可以共用IDE spyder以及jupyter lab 由于python迭代很快 需要注意的是本文记录时间是2021 8 10 系统是Windows
  • 8.Docker容器镜像仓库存储原理(前世今身)与搬运技巧

    文章目录 0x00 镜像如何炼成 1 OCI 标准协议 image spec 镜像规范 runtime spec 运行时规范 distribution spec 镜像仓库规范 2 Dockerfile 3 基础镜像 0x01 镜像存储原理
  • Js逆向之某股打新网(返回数据AES加密)

    目标网站 aHR0cHM6Ly93d3cubGlhbmdodWFpcG8uY29tLyMv 1 抓包分析 F12 那么接下来就是找加密的位置了 这里先提供两个思路 1 简单看了一下data数据 发现有点像base64 大部分加密都会经过这个
  • LINUX查询服务器对应端口的实际服务器信息

    1 通过端口查询进程ID netstat anp grep 8080 2 通过进程ID查询启动密令 ps ef grep 进程ID 3 查看启动命令查询是否为代理 如果是代理 通过cat查看实际的服务器IP ProxyPass http 1
  • UML之一综合设计例题

    某汽车租赁连锁公司计划开发一套信息系统 主要需求如下 1 客户可以通过不同的方式 包括电话 前台 网上 预定车辆 2 系统能够保存客户的预定申请单 3 系统能够保存客户的历史记录 4 工作人员可以处理客户申请 5 技术人员可以保存对车辆检修
  • 实验5 Spark SQL 编程初级实践

    实验5 Spark SQL 编程初级实践 一 实验目的 1 通过实验掌握Spark SQL的基本编程方法 2 熟悉RDD到DataFrame的转化方法 3 熟悉利用Spark SQL管理来自不同数据源的数据 二 实验平台 操作系统 Linu
  • 复旦计算机学硕408,又一所院校专业课改投408——复旦大学

    原标题 又一所院校专业课改投408 复旦大学 复旦大学简称 复旦 位于中国上海 位列211工程 985工程 入选双一流 是一所综合性研究型的全国重点大学 学校现有一级学科国家重点学科11个 二级学科国家重点学科19个 国家重点 培育 学科3
  • 类的加载详解

    到目前为止 我们已经写了无数个类了 但是具体它在Java虚拟机中到底是怎么实现的 我们还从未探索过 今天就带着大家一起初探一下jvm对类加载的过程 目前博主技术水平有限 以后随着技术的更加成熟 会更新博客内容的 也欢迎更多小伙伴持续关注 和
  • Ubuntu10下SSH2协议安装

    Ubuntu10下SSH2协议安装 SSH2是一套安全通讯协议框架 早期的SSH1由于存在安全漏洞 现在已经不用了 基于SSH2协议的产品目前主要有openssh putty SSH Secure Shell Client等 安装了SSH2
  • 基础配置Tomcat及使用

    配置Tomcat 背景简介 目前很多网站由java编写 所以解析Java程序需要有相关的软件来编写完成 Tomcat是其中之一 Tomcat技术先进 性能稳定且免费 是目前比较流行的web应用服务器 Tomcat是一个轻量化级应用服务器 实
  • jaspersoft studio动态图片传输

    业务需求简述 在实际业务开发中需要动态生成PDF 其中包含客户签字图片 技术栈 JasperReport Jaspersoft Studio软件 动态图片传输流程 jaspersoft studio 拖入image到工作区 选择最后一项点击
  • java爬取人人网数据

    通过httpclient何httpparser两个类爬人人网中得数据 其中的详细步骤以及文档下面详细介绍 爬人人网相关代码 SuppressWarnings deprecation public class RenRen 输入用户名及密码
  • 1.6 起步 - 初次运行 Git 前的配置

    1 6 起步 初次运行 Git 前的配置 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 19 初稿 目录 文章目录 1 6 起步 初次运行 Git 前的配置 版本说明 目录 初次运行 Git 前的配置 1 用户信息 2
  • 怀旧服服务器荣誉系统是啥,魔兽世界怀旧服:荣誉系统要开了?大元帅吸引人,军衔要不要冲?...

    魔兽世界怀旧服马上开荣誉系统了 相信很多pvp玩家都会有冲军衔的目标 因为军衔是实力和荣誉的象征 有玩家清晰记得 到了R13更新那天 跟另外两个元帅法师 一共3个元帅套 站在铁炉堡银行门口 围观的人超多 那种自豪和成就感难以言喻 大家知道大
  • echarts 饼图的指示线(labelline) 问题

    数据过多 且几个比较小的数据在一块扎堆 series name type pie center 25 50 radius 45 60 minAngle 10 设置每块扇形的最小占比 avoidLabelOverlap false hover
  • linux一次性创建多个文件/文件夹

    1 创建多个文件 touch file 1 10 注 创建10个文件 文件名file0 file1 file10 2 创建多个目录 mkdir folder 1 10 注 一次性创建10个文件夹 目录名为folder1 folder2 fo
  • 【Hive报错】Hive报错Expression Not In Group By Key解决方法

    SQL例如以下会报错 select sum time as time roadCoding upstreamOrDownstream from historicalroaddata where 报以下roadcoding upstreamO