Hive SQL编译报错Failed rule 'identifier' in the Select target如何修复
问题原因
该报错和AS保留字无关,你的SQL存在3处语法错误:
- SELECT字段列表最后一个聚合字段
AS b后多写了多余逗号,导致Hive解析器无法正确识别后续的FROM关键字,误将后续内容判定为第三个字段的别名定义,因此触发AS相关的解析异常 - 字符串匹配用的
‘%A%’、‘%B%’是中文全角弯引号,Hive SQL仅支持英文半角单引号包裹字符串常量 - 表名使用了Hive保留字
database,直接使用会触发保留字识别冲突
修复后代码
SELECT dt, COUNT(CASE WHEN search_word like '%A%' THEN id END) AS a, COUNT(CASE WHEN search_word like '%B%' THEN id END) AS b FROM `database` GROUP BY dt
如果实际表名不是database,直接替换为真实表名即可,无需加反引号。
内容的提问来源于stack exchange,提问作者Where should I go
相关产品推荐
相关产品推荐

