分组集中用例的语法
Syntax of using case in grouping sets
有问题的 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
中使用。
有问题的 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
中使用。