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

使用WITH子句的基础SQL查询报'Unrecognized name'错误求助

问题排查与修正方案

第一个错误的原因

  • 你定义的avg_price是一个临时表(CTE),不是单个数值变量,直接在WHERE子句里写avg_price,BigQuery无法识别它指向的是表还是列。
  • 另外,你的CTE里AVG(UnitPrice)没有指定列别名,就算想引用这个临时表,也没法定位到平均值这个具体字段。

第二个错误的原因

BigQuery的Legacy SQL方言不支持WITH子句(公共表表达式),只有Standard SQL才兼容这个语法,所以切换到Legacy SQL必然会报语法错误。

修正后的查询语句

给CTE里的平均值加上列别名,并且在主查询里关联临时表、引用具体字段:

WITH avg_price AS
(
    SELECT 
        AVG(UnitPrice) AS average_price  -- 为平均值指定列别名
    FROM 
        `erics-test-data-project.sales.sales` 
)
SELECT 
    UnitPrice
FROM 
    `erics-test-data-project.sales.sales`, avg_price  -- 关联临时表
WHERE
    UnitPrice > avg_price.average_price  -- 引用临时表中的平均值字段

如果不想用WITH子句,也可以直接用子查询实现:

SELECT 
    UnitPrice
FROM 
    `erics-test-data-project.sales.sales`
WHERE
    UnitPrice > (SELECT AVG(UnitPrice) FROM `erics-test-data-project.sales.sales`)

内容的提问来源于stack exchange,提问作者Eric Graham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:03:24