在分组集中使用大小写的语法



有问题的Hive查询片段如下所示:

group by
  case
    when inte.subId is not null then 'int'
    else 'ext'
  end,
  taskType,
  result
grouping sets(
  (
    case
      when inte.subId is not null then 'int'
      else 'ext'
    end,  -- line 36
    taskType,
    result
  ),  -- line 39
  (
    taskType,
    result
  )
)

日志建议第 36 行和第 39 行存在一些语法错误:

FAILED: ParseException line 36:7 missing ) at ',' near ')'
line 39:3 missing EOF at ',' near ')'

知道吗?如果您需要我的更多信息,请随时发表评论。

好的,这是@GordonLinoff在评论中建议的解决方案。基本上,这个想法是使用一个子查询,其中新列Category被选为

case 
  when inte.subId is not null then 'int'
  else 'ext'
end as Category

然后,在外部主查询中,组部分只是

group by Category, Type, Result
grouping sets(
    (Category, Type, Result),
    (Type, Result)
)

至于为什么问题中的语法错误,我们不确定。也许,case不能在grouping sets内使用.

相关内容

  • 没有找到相关文章

最新更新