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

sql - BigQuery:使用标准 SQL 从 Google Analytics 数据中选择星期

我正在使用标准 sql 在 Google Big Query 表中处理 Google Analytics 数据。我希望每周选择组数据。我找到了这个解决方案:

输出:

有没有更短的方法来达到这一点?这对我来说似乎很长,我想知道我是否错过了一个技巧。

0 投票
2 回答
20472 浏览

sql - 如何在 BigQuery 的标准 SQL 中编写 LEFT JOIN?

我们有一个适用于 BigQuery 的旧版 SQL 的查询。我们如何用标准 SQL 编写它以使其工作?

目前它给出的错误是:

BigQuery 有两种查询模式:旧版 SQL 和标准 SQL。我们查看了BigQuery 标准 SQL 文档,也只看到了一个关于 BigQuery 中标准 SQL 连接的 SO 答案——但到目前为止,我们还不清楚可能需要进行哪些关键更改。

Table_L 看起来像这样:

Table_R 看起来像这样:

期望的结果:

我们如何重写这个 BigQuery Legacy SQL 查询以在标准 SQL 中工作?

0 投票
4 回答
2052 浏览

google-bigquery - BigQuery:标准 SQL 中的 PI()

我一直在使用 Google BigQuery 的旧版 SQL,当我需要数字 Pi 时,有一个方便的 PI() 函数:

但是在标准 SQL 中,这个函数不再存在。我一直无法在文档中找到等效的功能。在标准 SQL 中具有等效 PI() 函数的最简单、最准确的方法是什么?

0 投票
1 回答
375 浏览

sql - 选择命中序列的查询消耗大量数据

我正在尝试通过网站上的替代渠道来衡量转化率。我的查询旨在输出查看相关起始 URL 的会话计数和严格按该顺序点击确认页面的会话计数。它通过比较点击次数来做到这一点。

我的查询似乎返回了准确的数字,但这样做会选择大量数据,对于我试图限制为一天一小时的数据,不到 23GB。我似乎没有以一种特别有效的方式编写我的查询,并且如果我继续使用它,我会很快用完我公司的所有数据配额。

这是完整的有问题的查询:

这个查询是什么意味着它必须处理这么多数据?有没有更好的方法来获得这些数字。理想情况下,任何方法都应该能够测量多条不同的路线,但此时我会满足于可持续性。

0 投票
0 回答
228 浏览

arrays - 在 BigQuery 中使用标准 SQL 语法显式展平 JSON 文件中的多个数组

我正在尝试使用标准 SQL 语法在 BigQuery 中的 JSON 文件中展平多个(相邻和嵌套)数组。本质上,我正在尝试转换这个嵌套结构:

{ "kind": "person", "fullName": "John Doe", "age": 22, "gender": "Male", "phoneNumber": { "areaCode": "206", "number": "1234567" }, "children": [{ "name": "Jane", "gender": "Female", "age": "6" }, { "name": "John", "gender": "Male", "age": "15" }], "citiesLived": [{ "place": "Seattle", "yearsLived": ["1995", "1996"] }, { "place": "Stockholm", "yearsLived": ["2005"] }] }

进入:

我将 CROSS JOIN 与 UNNEST 一起使用,但我被困在嵌套数组部分(CitiesLived 中的 YearsLived 数组)。如何正确展平它?

任何指针将不胜感激!

0 投票
2 回答
7119 浏览

google-bigquery - Bigquery 标准 SQL 日期到每月第一天

如何在 BigQuery Standard SQL 中将 YYYY-MM-DD 格式的日期转换为每月的第一天?

0 投票
2 回答
543 浏览

google-bigquery - 为什么 Bigquery 的 standardsql 返回多行,而 legacysql 只有一个?

请您帮我解答一下 Bigquery 的标准 SQL 语法问题,好吗?我试图理解为什么(以及如何解决它)这个标准 SQL 查询返回 2 行,而这个 legacysql 一个只返回 1 行(我希望只有一个)。

标准 SQL

旧版 SQL

阅读帮助后,我还尝试了这个StandardSQL之一,结果中的两行相同:

将不胜感激任何帮助。

0 投票
2 回答
12264 浏览

google-bigquery - BigQuery WITH 子句引发“无法识别的名称”错误

我想使用 WITH 运算符从我生成的视图 ( foo.bar.cohort) 中获取计数,然后可以使用它从我的主视图 ( foo.bar.retention_30d) 中的数据中计算一个值。看起来这应该很简单,但是当我尝试执行以下查询时出现此错误:

无法识别的名称:total_users 在 [12:29]

这是查询:

架构foo.bar.cohort

在此处输入图像描述

架构foo.bar.retention_30d

在此处输入图像描述

指针/提示是最受欢迎的。谢谢!

0 投票
2 回答
11245 浏览

sql - 如何在 Big Query 中将访问开始时间转换为可读的人工日期或时间戳?

我正在尝试将大查询中捕获的访问开始时间变量转换为可读日期或最好是时间戳。

我正在使用标准 SQL。

我试过使用 sec_to_timestamp 但我相信这只适用于 BQ 中的旧版 SQL。

谷歌文档讨论了从日期表达式和字符串表达式转换为时间戳,但是访问开始时间是一个整数。

https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators

我查看了以下链接并尝试了其中的代码,但出现错误“找不到函数:整数”

Big Query - Google Analytics - 首次访问和购买之间的时间差异

任何其他关于 BQ 捕获的日期/时间的建议都会受到欢迎。

谢谢

0 投票
1 回答
2709 浏览

google-bigquery - 如果指定了 DISTINCT,则不允许 BigQuery 窗口 ORDER BY

我正在研究移植一些包含像这样的窗口不同计数的 bigquery 遗留 sql

count(distinct brand_id) over (partition by user_id order by order_placed_at range between 7 * 24 * 60 * 60 * 1000000 PRECEDING AND 1 PRECEDING) as last_7_day_buyer_brands

到标准 sql .... 但我收到此错误....

Window ORDER BY is not allowed if DISTINCT is specified

作为参考,我尝试过APPROX_COUNT_DISTINCT没有运气的功能。

除了编写子查询和分组依据之外,还有更好的方法可以让它工作吗?

大多数其他查询都已移植到标准 sql 中,只进行了微小的更改。