【问题标题】:Why I am getting error while performing group by in hive?为什么在 hive 中执行 group by 时出现错误?
【发布时间】:2019-12-04 07:46:36
【问题描述】:

我正在 hive 中执行以下命令:

Select child.data_volume_gprs_dl + child.data_volume_gprs_ul as data_usage,
       parent.file_name,
       parent.record_number
  from table1 as parent
  left join table2 child
    on parent.file_name = child.file_name
   and parent.record_number = child.record_number
 where parent.served_imsi like '310120%'
    or parent.served_imsi like '312530%'
   and parent.serving_node_plmn_id like '310260%'
   and parent.date_part = 20191201
 group by parent.file_name, parent.record_number

错误:编译语句时出错:FAILED: SemanticException [错误 10025]:第 1:7 行表达式不在 GROUP BY 键中 'data_volume_gprs_dl'(状态=42000,代码=10025)

为什么会出现这个错误?

【问题讨论】:

  • 请提供样本数据和期望的结果。显然,您的查询不是有效的 SQL,因此它不能很好地描述结果集。

标签: sql hive hiveql


【解决方案1】:

所有非聚合列都应在GROUP BY 列表中,例如

 group by parent.file_name, parent.record_number,
          child.data_volume_gprs_dl, child.data_volume_gprs_ul

如果您只需要按parent.file_nameparent.record_number 列进行分组,则可以对其余列应用聚合(sum()avg()count())函数。甚至可能添加sum(child.data_volume_gprs_dl + child.data_volume_gprs_ul)

【讨论】:

  • 但我的要求是按 parent.file_name、parent.record_number 分组。有没有其他方法可以解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
相关资源
最近更新 更多