无法识别的名称:使用 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 作为源数据库的 Metabase 中使用字段过滤器时出现无法识别的名称
BigQuery 中出现“无法识别的名称:m01_order_datetime_gmt0”错误