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

BigQuery SQL报错Unrecognized name: inventory,如何修复?

问题解决:Unrecognized name: inventory 错误

错误原因

你在SELECT语句里引用了inventory.*,但FROM子句中的表my-project-7869-408305.sales.inventory没有定义别名inventory,BigQuery无法识别这个未声明的名称。另外原CTEsales_history的GROUP BY包含ProductId,但SELECT列表里没返回该字段,后续子查询匹配时会触发新的字段未识别错误,需要一并修复。

修复方案

给FROM子句中的inventory表添加对应别名,同时在sales_history的SELECT列表中加入ProductId字段。以下是两种可选的修正后的SQL:

方案一:用inventory作为表别名

with sales_history as (
  SELECT
    EXTRACT(YEAR FROM Date) AS YEAR 
  , EXTRACT(MONTH FROM Date) AS MONTH 
  , StoreID 
  , ProductId  -- 新增字段,用于子查询匹配
  , SUM(quantity) AS UnitsSold 
  , AVG(UnitPrice) AS UnitPriceProxy 
  , COUNT(DISTINCT salesID) AS NumTransactions 
  FROM `my-project-7869-408305.sales.sales_info`
  GROUP BY YEAR, MONTH, ProductId, StoreID
)
SELECT
  inventory.*
  , (SELECT AVG(UnitsSold) FROM sales_history
      WHERE inventory.ProductID=sales_history.ProductID
      AND inventory.StoreID=sales_history.StoreID) AS avg_quantity_sold_in_a_month
FROM `my-project-7869-408305.sales.inventory` inventory  -- 给表添加别名inventory

方案二:用更简洁的别名(如inv)

with sales_history as (
  SELECT
    EXTRACT(YEAR FROM Date) AS YEAR 
  , EXTRACT(MONTH FROM Date) AS MONTH 
  , StoreID 
  , ProductId  -- 新增字段,用于子查询匹配
  , SUM(quantity) AS UnitsSold 
  , AVG(UnitPrice) AS UnitPriceProxy 
  , COUNT(DISTINCT salesID) AS NumTransactions 
  FROM `my-project-7869-408305.sales.sales_info`
  GROUP BY YEAR, MONTH, ProductId, StoreID
)
SELECT
  inv.*
  , (SELECT AVG(UnitsSold) FROM sales_history
      WHERE inv.ProductID=sales_history.ProductID
      AND inv.StoreID=sales_history.StoreID) AS avg_quantity_sold_in_a_month
FROM `my-project-7869-408305.sales.inventory` inv  -- 给表添加别名inv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:50:03