问题标签 [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 投票
0 回答
1060 浏览

session - Firebase 中的每用户会话数分布表

这是关于查看 Firebase Analytics Data 中的分布的第二篇文章(我的第一篇文章的后续文章)。这一次,我想根据 Firebase 会话数据在 BigQuery中创建一个用户分布表。输出应如下所示:

在此处输入图像描述

我设法创建了以下脚本来依靠 app_instance_id:

在此处输入图像描述

问题:

  • 考虑到用户(而不是会话),我想 100% 确定我是否仍然应该依赖应用程序实例(而不是会话 ID)?

  • 关于优化此查询的任何想法是否有一种更有效的方法可以通过一个查询聚合所有分布范围?

  • 最后,我想将我从上面得到的总体总数与session_start在同一时期触发 - 事件的不同用户进行比较。我希望看到它大致对齐,但事实并非如此。为什么会有这么大的差异:7688 vs 16310 (488+7343+4967+1956+1165+391) ?我的逻辑哪里出错了?

0 投票
4 回答
976 浏览

sql - 根据 BigQuery 中添加和删除事件行构建数组

我在 BigQuery 中有一个具有以下结构的表:

我正在尝试构建一个视图,该视图list向包含数组当前状态的每一行添加一列。数组永远不会包含重复项。这应该是结果:

我尝试使用分析函数,但没有成功。使用数组的 api 非常有限。如果我可以使用递归WITH子句,我想我会成功,不幸的是,这在 BigQuery 中是不可能的。

我正在使用启用了标准 SQL 的 BigQuery。

0 投票
1 回答
960 浏览

sql - 为什么 BigQuery 不优化 LEFT JOIN 和 GROUP BY

我有以下查询:

在这种情况下,查询处理器可以轻松优化(省略)LEFT JOIN 和 GROUP BY 的组合。但是,当我查看查询计划时,BigQuery 仍然执行连接。为什么?我怎样才能避免这种行为?

我的用例:我有一个视图,其中包含一些需要此类连接的字段。我不希望在不查询字段时执行连接。

我正在使用standardSQL方言。

0 投票
1 回答
1058 浏览

google-bigquery - BigQuery:为每个 user_id 选择第二大的

桌子:

架构看起来像这样。红色、蓝色和绿色是 RGB 数字。评级是每个用户对颜色的喜欢程度。

我需要 3 个查询方面的帮助:

  1. 识别每个用户最喜欢的颜色(a:第 1 行,b:第 6 行)
  2. 识别每个用户第二喜欢的颜色(a:第 3 行,b:第 4 行)
  3. 每个用户最喜欢的前 2 个颜色的评分总和。

谢谢!

//编辑:

尝试了以下查询:

以上仅返回评分最高的行

以上返回所有行..

0 投票
2 回答
2684 浏览

google-bigquery - BigQuery:加权平均

桌子:

我想要获得的结果是 user_id 的不同行,具有红色、蓝色和绿色的加权平均值 - 基于评级列。

颜色 * 评级/(a 或 b 的评级总和)

//编辑

无法理解如何做到这一点。尝试了以下但这是徒劳的尝试

0 投票
1 回答
353 浏览

google-bigquery - 在 bigquery 中使用 json_extract_scalar 时如何将 unix 时间戳转换为格式化日期

例如我有这个

这给了我一个结果,但 CreatedDateTime 字段是 unix 时间戳,我想以 2018-02-01 17:11:43 格式获取它。我知道我可以使用

稍后转换它,但是如果我想在上面的 select 语句中执行此操作。任何想法?

0 投票
2 回答
1297 浏览

google-bigquery - 在 bigquery 中创建分区表时如何设置时间戳

这是我尝试过的

但在这种情况下,DateCreated 字段是 Date 类型,我想将其设为 TIMESTAMP 格式,我该怎么做?因为我的数据采用这种格式 "DateCreated":"1519302159.042" 而不是 DATE 类型

0 投票
1 回答
3789 浏览

google-bigquery - 如何在 Google Bigquery 中创建按日期(每年)分区的表

这是我的数据样本

这就是我尝试创建表格的方式

但是当我尝试从 newline_delimited_json 的命令行加载数据时,我收到此错误

我认为的问题是 DateCreated 字段的类型是 DATE,我不知道如何使它成为 TIMESTAMP,文档说要使用 partition_expression,我该怎么做,目的是按日期创建分区表(在我的案例按 DateCreated),例如按年份划分。我如何改进我的查询以实现这一点,任何建议或指向我的示例或文档都会很棒。

0 投票
4 回答
4501 浏览

date - BigQuery - DATE_TRUNC 错误

试图从 Legacy 表中获取每月汇总数据。含义日期列是字符串:

然而,命令

返回以下错误:

错误:语法错误:应为“)”但得到标识符“date_create”

为什么这个查询不运行,可以做些什么来避免这个问题?

谢谢

0 投票
1 回答
2355 浏览

google-bigquery - 如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?

我正在尝试(未成功)将 Google BigQuery 中的字符串列拆分为包含所有单个单词和所有单词对的行(彼此相邻且按顺序排列)。我还需要维护 IndataTable 中单词的 ID 字段。两个记录集都有 2 列。

IndataTable as IDT
ID WordString
1 苹果 香蕉 梨
2 胡萝卜
3 蓝色 红色 绿色 黄色

OutdataTable as ODT
ID WordString
1 苹果
1 香蕉
1 梨
1 苹果 香蕉
1 香蕉 梨
2 胡萝卜
3 蓝色
3 红色
3 绿色
3 黄色
3 蓝色 红色
3 红色 绿色
3 绿色 黄色 (仅对彼此相邻)

这可能在大查询 SQL?

编辑/添加:
这是我迄今为止所拥有的,可将其拆分为单个单词。我真的很难弄清楚如何将其扩展到单词对。我不知道是否可以对此进行修改,或者我完全需要一种新方法。