在 BigQuery 中使用“hits.column name”为未嵌套的匹配列添加前缀

Posted

技术标签:

【中文标题】在 BigQuery 中使用“hits.column name”为未嵌套的匹配列添加前缀【英文标题】:Prefixing unnested hits columns with "hits.column name" in BigQuery在 BigQuery 中使用“hits.column name”为未嵌套的匹配列添加前缀 【发布时间】:2021-08-27 14:07:19 【问题描述】:

有没有办法在以下查询中为UNNEST(hits) 产生的列加上hits. 前缀:

#standardSQL
SELECT *
FROM `project_id.dataset_id.table_name`, UNNEST(hits)

例如,结果将包含hits.page 列而不是page 列。

【问题讨论】:

hits.page 不是 BigQuery 中的有效列名。所以,不,这是不可能的。 感谢您的回复。前缀hits_hits_page 也是如此吗?据我了解,我可以对每一列进行别名处理,有没有办法对所有未嵌套的命中列执行此操作,或者我必须发现这些名称并分别为它们设置别名? 。 .允许使用下划线,但这不是您要问的。你想在这个问题中做的事情在BQ中是做不到的。 【参考方案1】:

在 documentation 之后,我发现 BigQuery 中列名的唯一有效字符是字母(a-z、A-Z)、数字 (0-9) 或下划线 (_)。所以,你不能用“hits.page”来命名你的列。相反,您可以使用“hits_page”(使用下划线)。

【讨论】:

如果这对你有用,请接受这个答案。如果我能提供帮助,我很高兴。

以上是关于在 BigQuery 中使用“hits.column name”为未嵌套的匹配列添加前缀的主要内容,如果未能解决你的问题,请参考以下文章

在 Power BI 中使用 BigQuery 重复/嵌套字段

是否可以在 aws lambda 中使用 bigquery?

BigQuery -- 在公开共享项目中使用 UDF 的问题

在 BigQuery 的查询中使用 UDF 作为列

Bigquery:在 Bigquery 中计算余额或重写 SQL 脚本

如何在 Datalab 的 api 中使用 Bigquery 中的子查询?