无法识别的名称:使用 bigquery 标准 sql 进行嵌套查询时出错

Posted

技术标签:

【中文标题】无法识别的名称:使用 bigquery 标准 sql 进行嵌套查询时出错【英文标题】:Unrecognized name: error in nested query using bigquery standard sql 【发布时间】:2020-06-24 06:25:13 【问题描述】:

我正在运行内部语句的查询(在这种情况下,我使用 when..case)和 预计从外部语句的结果运行查询。但是,外部语句的结果是字符串数据类型 ,所以我添加了“as INT64”来解决这个问题。但是,查询仍然抛出错误“Unrecognized name: (score at [12:33]

代码:

SELECT
   User_ID, 
   CASE 
     WHEN ..
     ELSE ..
    END AS score,

    (SELECT ROUND(AVG(SAFE_CAST(score as INT64)),1) 
          FROM cognitivebot2.chitchaxETL.conversations )
                AS Average_score
 FROM table

有什么办法可以让查询结果从外部语句中保留,然后在内部语句中运行?

【问题讨论】:

【参考方案1】:

派生表中进行原始查询,然后在外部查询中使用其结果列得分。

您可能还需要添加一个条件,以使子查询相关。

select t.*,
    (SELECT ROUND(AVG(SAFE_CAST(score as INT64)),1) 
          FROM cognitivebot2.chitchaxETL.conversations
          WHERE t.xx = yy                                 <-- Add correlated condition
    ) AS Average_score
from
(
SELECT
   User_ID, 
   CASE 
     WHEN ..
     ELSE ..
    END AS score
FROM table
) t

【讨论】:

以上是关于无法识别的名称:使用 bigquery 标准 sql 进行嵌套查询时出错的主要内容,如果未能解决你的问题,请参考以下文章

错误:无法识别的名称:Google BigQuery

在将 Google BigQuery 作为源数据库的 Metabase 中使用字段过滤器时出现无法识别的名称

BigQuery 中出现“无法识别的名称:m01_order_datetime_gmt0”错误

错误 - 配置值:“主题”。错误:无法识别的主题名称:

无法识别的属性“targetFramework”。请注意属性名称区分大小写。

无法识别的属性“targetFramework”。请注意属性名称区分大小写