有问题的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 ')'
有什么想法吗? 如果您需要我的更多信息,请随时发表评论。
答案 0 :(得分:0)
好的,这是@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
内使用。