问题标签 [bigquery-standard-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
527 浏览

google-bigquery - 使用表通配符函数时,标准 SQL 不会为不存在的表引发异常

在查询带有日期分区后缀的表时,我们对 Legacy SQL 和 Standard SQL 都有通配符功能。但是,我发现它们的工作方式并不完全相同,即使特定日期的表不存在,标准 SQL 也不会引发异常。

例如,我有一组名为 的表myTable_YYYYMMDD,但缺少表 'myTable_20170601',然后,

在旧版 SQL中,

它会给我[错误:查询:带有表通配符的 FROM 子句不匹配任何表(错误代码:invalidQuery) ]

在标准查询中,

即使该表不可用,这也会给我一个空结果而不是异常。

在这种情况下,如果我正在运行自动作业以再次查询表并且空表也是预期结果之一,那么我将不知道源表不存在,这会影响实际结果。

是否也可能在标准 SQL 中引发异常?

先感谢您。


在 BigQuery 问题跟踪器上添加功能请求

https://issuetracker.google.com/issues/62264827

0 投票
2 回答
395 浏览

sql - BigQuery:使用标准 sql 进行查询

我有这张桌子:

我想在会话中,为所有先前的操作注册第一次发生的 transaction_id(因此在 15:03 transaction_id = NULL)

0 投票
1 回答
4166 浏览

google-bigquery - 在 Google BigQuery 中展平多个重复字段

我正在尝试从 Big Query 中的重复字段中展平数据。我看过这个在 BigQuery 中查询多个重复字段,但是我似乎无法让它工作。

我的数据如下所示:

我想要的是点击页面重复字段中的字段。

例如,我想获取 hits.page.pagePath(值为“/news/bla-bla-bla”)

我已尝试使用以下查询,但出现错误:

我得到的错误是这个

0 投票
1 回答
817 浏览

google-bigquery - 带有日期列的 BigQuery 标准 SQL 表通配符

在使用表通配符时,在 BigQuery Web UI 中使用日期列和标准 SQL 中的查询时,我遇到了错误。

这有效:

这不会:

date_of_sale是类型DATEsale_item而是类型STRING。错误是:Error: Invalid adaptation for field: date_of_sale (message Msg_0_CLOUD_QUERY_TABLE). Cannot change from TYPE_STRING to int32

0 投票
1 回答
992 浏览

google-bigquery - BigQuery Standard SQL Pivot Structs 和 Sum 在非重叠窗口上

我正在尝试查询一个使用基本重复字段来存储数据的表,如下所示:

我试图弄清楚如何运行一个得到类似结果的查询

其中每一行代表一个不重叠的总和(即i=1是行i=0和的总和i=1),并且数据已经过旋转,data.key现在是一列。

问题1:

我尽我所能将此答案转换为使用标准 SQL 并最终得到:

这行得通,但我想知道是否有更好的方法来做到这一点,特别是因为它在尝试使用分析函数时会产生特别冗长的查询:

问题2:

如何编写ROWorRANGE语句以使生成的窗口不重叠。在最后一个查询中,我得到了数据的滚动总和,这并不是我想要做的。

滚动总和为每一行产生一个结果,而我试图减少返回的行数。

0 投票
2 回答
431 浏览

timestamp - 标准 SQL:无法从时间戳中提取 DAY

我无法使用函数从名为repository.created_at的时间戳变量中提取天数。EXTRACT()

怎么解决?

0 投票
2 回答
766 浏览

sql - 迁移到标准 SQL:选择距当前日期最近的星期日

我需要将此查询从旧版迁移到标准 SQL :

查询必须返回距当前日期最近的星期天日期。

当我在标准 SQL 中运行它时,我得到

语法错误:预期的关键字 JOIN 但在 [12:2] 得到“)”(在 FROM (SELECT NULL) 之后),h

0 投票
2 回答
11503 浏览

google-bigquery - BigQuery:标量子查询产生了不止一个 - 自定义维度

我试图将自定义维度添加到我的一个工会中,但我遇到了标量子查询产生多个元素的问题。我相信问题出在这段代码中。我正在尝试迁移到标准 SQL,所以请用标准 SQL 给出答案。

查询的整体示例

0 投票
1 回答
2302 浏览

sql - BigQuery UNNEST 无结果

我对嵌套数据的概念相对较新,并试图了解正确的方法来扁平化 BigQuery 中的一些 GA 数据 ( https://support.google.com/analytics/answer/3437719?hl=en )。

现在给出一些上下文,对于每个访问者会话,我试图捕获查看的产品 SKU 列表(详细视图)以及是否有交易,交易 id。根据我的估计,在做了一些研究之后,最简单的方法是这样的,使用 LEFT JOINS 来恢复所有内容:

但是,这似乎返回零结果,其中 trId 不为空......

然后,我尝试将上述内容分成两个查询并加入。这似乎可行,并返回看似合理的行数(~1000),其中 trId 不为空。

如果有人能解释为什么两者不给出相同的答案,并希望让我能够在未来参与各种嵌套乐趣,那就太棒了....谢谢!

0 投票
1 回答
1150 浏览

join - BigQuery 子查询高效联接

我正在尝试在 BigQuery 中分析 Firebase 分析数据。我需要使用 StandardSQL 更新 BigQuery 中的表。

我必须通过将其加入另一个表来更新order_flag表。cartkey = 'item_id'order

以下是查询:

但我收到错误:

错误:不支持引用其他表的相关子查询,除非它们可以去相关,例如通过将它们转换为有效的 JOIN。

在这种情况下如何进行有效的联接?