isMr_Sun 2023-02-23 20:02 采纳率: 25%
浏览 19
已结题

hive3.x的round函数

hive3.x的round函数

select si.stu_id ,round(avg(si.score),2) score_avg
from score_info si 
group by si.stu_id 
having score_avg > 60;

select si.stu_id ,avg(si.score) score_avg
from score_info si 
group by si.stu_id 
having score_avg > 60;

当加了round后就无法执行,报错:SQL 错误 [10025] [42000]: Error while compiling statement: FAILED: SemanticException [Error 10025]: Line 5:7 Expression not in GROUP BY key '60'
求解释一下为什么。

  • 写回答

2条回答 默认 最新

  • @SmartSi 博客专家认证 2023-02-28 23:30
    关注

    GROUP BY 语句通常会和聚合函数一起使用,按照一个或者多个列对结果进行分组,然后对每个组执行聚合操作。在 SELECT 子句中出现的字段,如果不是在聚合函数(比如 SUM、COUNT、AVG等)中,那就必须要放到 GROUP BY 子句中,相反没有出现在 GROUP BY 子句中的字段,只能出现在聚合函数中。Hive 不认为 ROUND 是一个聚合函数,ROUND 中使用的字段必须添加到 GROUP BY 中,否则就会抛出上面的异常信息。但是 GROUP BY 语句中是不能使用 AVG 聚合函数。所以需要嵌套子查询的方式实现。

    https://smartsi.blog.csdn.net/article/details/129272452?spm=1001.2014.3001.5502

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 已采纳回答 2月28日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 Acrn IVSHMEM doorbell问题
  • ¥15 yolov5中的val测试集训练时数量变小问题
  • ¥15 MPLS/VPN实验中MPLS的配置问题
  • ¥15 materialstudio氢键计算问题
  • ¥15 已知隐函数其中一个变量的,求另外一个变量
  • ¥15 echarts图表制作
  • ¥15 halcon根据玻璃面板纹路取区域
  • ¥15 HFSS设计小型化180度耦合器
  • ¥15 使用CInternetSession,CHttpFile读取网页文件时有些电脑上会卡住怎么办?
  • ¥15 水下机器人的半物理仿真研究