问题标签 [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 回答
116 浏览

google-bigquery - BigQuery 错误“视图 X 是自引用的”

我正在从 legacySQL 迁移到 standardSQL,并且在旧版中工作的相对简单的查询中遇到错误。

错误是“查看 myproject.mydataset.vw_1 是自引用的”。

有 2 个视图(别名 b 和 c)左连接到 1 个子查询(别名为 a)。

请注意,vw_2 和 vw_3 都返回 1 列(Line_Item_ID),它们都从 `myproject.mydataset.vw_1 中选择。我怀疑这个问题与这两个视图有关,每个视图都查询相同的视图,但奇怪的是它可以在遗留而不是标准中工作。

如果我注释掉与表别名 b 或表别名 c 的连接,查询将起作用并返回 a.LineItemID。当 b 和 c 都连接时,它只会给出“视图 X 是自引用的”错误。

我尝试用这样的子查询替换 b 和 c 的连接,这些子查询指定列名 Line_Item_ID 但它给出了相同的错误。

vw_1 的定义如下。请注意,它查询日期分区表。当它是旧版 SQL 时,此视图使用 TABLE_DATE_RANGE。

0 投票
1 回答
638 浏览

google-bigquery - 使用分析函数时,查询执行期间 Bigquery 资源超出

在我的 BQ standardsql 查询中,当我使用很少的分析函数(https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#analytic-functions)时,我收到此错误:

该查询的计算或多或少类似于以下字段:

当我拆分查询并逐个运行每个部分时,它们都运行良好。但是,我不想将查询拆分为多个,因为我需要将所有字段都放在一个最终的 BQ 视图中。

有什么办法可以解决这个错误吗?

UPD:这是一个查询示例。当我添加更多字段时,它会停止处理上述错误。

0 投票
1 回答
423 浏览

sql - GROUP BY 的替代方案,当窗口不能正常工作时.. SQL

我觉得这是一个简单的答案,但我似乎无法正确回答..

最初我运行了两个查询,因为我无法弄清楚如何解决这个问题。这是我的初始表“free2”的查询:

它按天对我所有的总和进行分组,这就是我想要做的。然后我通过运行第二个查询将第二个表加入到第一个表中:

正如我所说,效果很好。但是,我需要在一个查询中将其作为一个整体进行复制。我不能直接这样做,因为 GROUP BY 子句会干扰 LEFT JOIN。所以我试图将第一个表的所有值都设为窗口函数:

我尝试将每个 WINDOW 的 RANGE 更改为 ROWS .. 但它仍然是错误的。

发生的事情是每天的所有分组都没有正确发生,它显示日期是单数的,并且每个值的总和相同,但是会有大约 10-20 行完全相同的 SUMS 和DAYs 数据..

这就是“size”列和“day DESC”的前 5 行的样子:

行天数
1 2017-04-30 1679.27
2 2017-04-29 7292.809999999996
3 2017-04-28 3247.04
4 2017-04-27 2209.2000000000003
5 2017-204-26 293.

但相反,它是这样的:

行天数
1 2017-04-30 1679.27
2 2017-04-30 1679.27
3 2017-04-30 1679.27
4 2017-04-30 1679.27
5 2017-04-30 1679.27

如何防止数据中 SUM 和天数的重复?

0 投票
1 回答
10652 浏览

google-bigquery - BigQuery 标准 SQL 中的分位数函数

BigQuery with Legacy SQL 有一个非常方便的QUANTILES功能,可以快速获取表中值的直方图,而无需手动指定存储桶。

在标准 SQL中可用的聚合函数中,我找不到很好的等价物。我是否错过了一些明显的东西,或者以其他方式模拟它的标准方法是什么?

0 投票
3 回答
29449 浏览

google-bigquery - 在 BigQuery 中计算百分位数

我正在使用 BigQuery,我需要计算数据集列的第 25、第 50 和第 75 个百分位数。

例如,如何使用 BigQuery 和 STANDARD SQL 获得上述数字。我查看了 PERCENT_RANK、RANK 和 NTILE 函数,但似乎无法破解它。

这是一些可以指导我的代码

感谢帮助!

0 投票
4 回答
26133 浏览

sql - 如何在标准 SQL 中将 Epoch 时间戳转换为日期

当我环顾四周时,我没有找到任何简单的答案,所以我想我会把它放在这里,以防有人遇到和我一样的问题,本来应该是一个微不足道的问题。

我在 Google 的 BigQuery 中使用 ReDash 分析,并在数据源设置中打开了标准 SQL。出于查询的目的,我需要将时间戳 - 以毫秒为单位的 unix 时间,作为字符串 - 转换为 Date 格式,以便我可以使用 DATE_DIFF 方法。

举个例子……"1494865480000""2017-05-15"

困难在于强制转换和转换过于严格,似乎没有足够的方法对其进行解析。请看下面我的回答!(尽管如果某些 SQL 老师知道更雄辩的方式,请告诉我!)

0 投票
1 回答
1776 浏览

google-bigquery - 如何在不指定完整类型的情况下将表中的一行传递给 UDF?

假设我想使用JavaScript UDF对具有嵌套结构的表(例如示例 Github 提交)进行一些处理。我可能想在迭代 UDF 实现时更改我在 UDF 中查看的字段,因此我决定只将表中的整行传递给它。我的 UDF 最终看起来像这样:

然后我使用如下查询调用该函数:

UDF 声明中最麻烦的部分是输入结构,因为我必须包含所有嵌套字段及其类型。有一个更好的方法吗?

0 投票
1 回答
5103 浏览

google-bigquery - 如何对 BigQuery 中的重复字段进行分组

在 BigQuery 中,我创建了一个具有以下架构的表

如何通过对设备和状态值进行分组来获得总和(访问)?

示例数据:

我想要输出中的 id、device、state、sum(visits)。

我可以通过使用带有以下查询的单个维度来创建一个组,但不知道如何为多个维度执行此操作。

当事先不知道键值时,是否可以编写通用查询?

0 投票
2 回答
1001 浏览

sql - 为什么在 BigQuery 中取消嵌套两个或多个变量时没有得到任何结果?

我正在查看我们网站上一位访问者的特定操作,只是为了了解如何收集一些数据以及如何提取我需要的数据。基本上,当访问者看到我们网站的某些部分并且我想看看是否正在收集这些数据时,就会触发特定的促销活动。

我运行了以下代码来识别访问者看到的页面以及他们的会话触发的事件:

这工作得很好,我可以看到访客的旅程。我也想拉

我已经使用以下代码进行了尝试:

但是,当我这样做时,将完全一样的 fullvisitorid、visitorid、日期和数据集等我没有得到任何结果。没有错误或任何东西只是没有结果。

我不完全理解嵌套,所以我假设我只是缺少一些简单的东西。

有什么办法可以在一个查询中提取所有这些数据,还是我需要进行子查询?

谢谢

0 投票
1 回答
351 浏览

r - 如何通过 R 在 bigquery 中使用标准 SQL

我想bigquery通过 R 使用标准 SQL执行。

但我得到以下错误:

ERROR: Query text specifies use_legacy_sql:false, while API options specify:true

我找不到在哪里设置 API 选项。

谢谢你。