You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询报no viable alternative at input错误 语法排查

错误原因

触发解析报错的直接原因是**IN操作符语法不符合SQL规范**:SQL中IN关键字后必须跟随圆括号包裹的候选值集合,哪怕仅匹配单个值也不能省略括号。原代码中写为fdse.eventaction IN 'zoom image',解析器运行到字符串位置时无法匹配合法语法规则,直接在对应位置抛出解析失败错误。
除了解析错误外,原代码还存在一处逻辑语法问题:聚合函数SUM()嵌套位置错误。原写法将聚合函数放在CASE WHEN的THEN分支内,CASE WHEN本身是逐行执行的判断逻辑,聚合函数写在此处会触发聚合规则校验错误,无法正常执行。

修复方法
  • 修正IN语法:将IN 'zoom image'改为IN ('zoom image'),单值匹配场景下也可以直接替换为= 'zoom image',两种写法均合法。
  • 调整聚合与判断的嵌套顺序:将逐行判断的CASE WHEN逻辑放在SUM()内部,先逐行判断是否符合事件条件,符合则返回对应的事件数,不符合返回0,再通过SUM完成聚合统计。

修复后的可运行代码如下:

%sql
SELECT
  SUM(
    CASE WHEN fdse.`eventaction` IN ('zoom image') 
         THEN CAST(fdse.`totalevents` AS BIGINT)
         ELSE 0 
    END
  ) AS `zoom`
FROM GA_FAVORITES_DIGITAL_STYLIST_EVENTS AS fdse
INNER JOIN GA_FAVORITES_SESSIONS AS fs
  ON fdse.uniquesessionid = fs.uniquesessionid
  AND fdse.trans_date = fs.trans_date
WHERE fs.trans_date >= date_add(current_date,-10)
LIMIT 10

如果后续需要统计多个事件的数值,直接在IN的括号内追加逗号分隔的事件名称字符串即可,无需调整其他结构。

内容的提问来源于stack exchange,提问作者Elena Epshtein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 19:33:35