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

SQL查询报Expected keyword AS but got "("错误该如何修正

Syntax error: Expected keyword AS but got "(" at [1:15]

报错原因

这个语法错误和你使用的SQL引擎语法规则有关:你当前使用的是BigQuery引擎,它不支持在WITH子句定义CTE(公共表表达式)时,在CTE名称后直接加括号手动指定列名的写法——这种写法是SQL Server、PostgreSQL等部分SQL方言支持的特性,BigQuery未做兼容。引擎解析到PopvsVac后的左括号时,默认此处应该紧跟AS关键字,因此直接抛出语法错误。

修复方法

你在CTE内部的SELECT语句里已经为所有返回字段定义了正确的别名,不需要在CTE头部额外重复声明列名,直接删掉CTE名后紧跟的列名括号部分即可正常运行。

修正后的完整SQL代码如下:

WITH PopvsVac AS 
    (SELECT dea.continent,
         dea.location,
         dea.date,
         dea.population,
         vac.new_vaccinations,
         SUM(CONVERT(int, vac.new_vaccinations)) OVER (PARTITION BY dea.location
    ORDER BY  dea.location,dea.date) AS RollingPeopleVaccinated
    FROM `phonic-scheme-348721.covid_deaths.deaths` dea
    JOIN `phonic-scheme-348721.covid_vaccine.vaccine` vac
        ON dea.location = vac.location
            AND dea.date = vac.date
    WHERE dea.continent is NOT NULL )
SELECT *
FROM PopvsVac

内容的提问来源于stack exchange,提问作者Ahmad Zayed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:12:35