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

sql - BigQuery:联合两个基于联合 Google 电子表格的不同表

我有两个不同的 Google 电子表格:

一个有 4 列

一个包含上一个文件的 4 列,还有 2 列

我在 Google BigQuery 中将它们配置为联合源,现在我需要创建一个视图来连接两个表的数据。

两个表都有Col1列,其中包含一个 ID,此 ID 在所有表中是唯一的,不包含复制数据。

我正在寻找的结果表如下:

对于第一个文件没有的列,我期待一个NULL值。

我使用的是标准 SQL,这是一个可用于生成示例数据的语句:

一个简单UNION ALL的不起作用,因为表有不同的列

通配符运算符不是一种合适的方式,因为联合来源不支持

当然这是一个样本数据,只有 3-5 列,真实的表有 20-40 列。因此,我需要SELECT逐个字段显式显示的示例不是一个可观的方法。

有没有一种工作方式可以加入这两个表?

0 投票
1 回答
548 浏览

group-by - 对至少有一列具有真值的行进行分组

我有一张这样的桌子

可以用这个语句生成

email按, year,分组month,输出表需要有true值(对于两列中的每一flag列),如果在分组数据中至少有一行有true

结果表应该是这个

我开始按前 3 列对所有标志进行分组,但现在我不得不确定true每个数组中是否至少有一个值

0 投票
1 回答
3588 浏览

google-bigquery - 如何在bigquery中获取重复嵌套字段的长度

我在 bigquery 中有一个表,其中有一个重复的嵌套字段,称为author_names.在此处输入图像描述

如何获得重复嵌套字段的长度author_names?例如,对于article_id = 2049807276,作者姓名的长度为 2。

我更喜欢 bigquery 中的标准 sql 语法。

0 投票
1 回答
1008 浏览

google-bigquery - 如何从 json 字符串中提取重复的嵌套字段并与 bigquery 中现有的重复嵌套字段连接

我有一个表,其中包含一个名为的嵌套重复字段article_id和一个包含 json 字符串的字符串字段。

这是我的表的架构:

这是表的示例行:

extra_information.ANF我有一个嵌套数组,其中包含更多作者姓名信息。

嵌套的重复author_name字段有一个子字段author_name.S,可以映射到extra_informations.ANF.S一个连接中。使用此映射,我试图实现下表:

我面临的主要问题是,当我使用 json_string 转换时JSON_EXTRACT(extra_information,"$.ANF"),它没有给我一个数组,而是给了我嵌套重复数组的字符串格式,我无法将其转换为数组。

是否可以在 bigquery 中使用标准 SQL 生成这样的表?

0 投票
1 回答
1337 浏览

sql - BigQuery 优化查询,过滤 STRUCT 字段的嵌套数组并分组

我试图弄清楚如何编写 GQL(Google SQL)查询来过滤深度嵌套的结构,然后再次嵌套它,并将 STRUCT 属性的第一条记录保留在与 ARRAY 相同的级别。

我准备了一个模式示例

并且需要一个扁平化所有嵌套字段的源过滤器查询来进行过滤。

主要问题是,在此过滤之后,想要对所有内容进行分组saleItemssale._id返回初始结构)并检索serviceFeedback具有 STRUCT 类型的字段。

JSON格式的预期结果是:

我写了我想到的最简单的查询想法。它产生正确的结果。但可能有可能以更有效的方式重写它,

你能建议我一个更好的解决方案来达到同样的结果吗?

0 投票
1 回答
41 浏览

google-bigquery - 具有 2 个重复字段的查询表

我有一个包含多个重复字段的模式,这些字段都是记录类型。例如,架构是这样的:

如何在标准 SQL 中查询并返回包含班级和学校列表的学生行(班级和学校完全不相关)。

实际上,一个简单的 SELECT * 有效,但我想选择每一列并重命名它们,即 SELECT name as student_name、classes、schools。我还想过滤一些班级和学校,即只显示满足某些约束的班级。

示例:姓名:'Tom',班级:[{id:1,title:math},{id:2,title:physics},{id:3,title:math}],学校:[{id:1, title: Yale}, {id: 2, title: Havard}, {id: 3, title: Yale}] 我想按 class.title 和 school.title 过滤以返回这样的行: name: 'Tom',班级:[{id:1,title:math},{id:3,title:math}],学校:[{id:1,title:耶鲁},{id:3,title:耶鲁}]

0 投票
1 回答
5737 浏览

google-bigquery - 如何计算 bigquery 数组字段中元素的频率

我有一个看起来像这样的表:

在此处输入图像描述

我正在寻找一个表格,它给出了字段中元素的频率计数l_0, l_1, l_2, l_3

例如,输出应如下所示:


编辑:

在某些情况下,数组字段可能有不止一种类型的元素。例如l_0可以是 ['biology', 'biology', 'geometry', 'geometry']. 在这种情况下,字段的输出l_0, l_1, l_2, l_3将是一个嵌套的重复字段,其中包含所有元素l_0.name以及l_0.count.

0 投票
1 回答
454 浏览

google-bigquery - 如何在 bigquery 中创建标准 SQL 表

我刚刚检查了 Web UI,创建了一个空表,所有暴露的数据类型都是旧的 SQL 数据类型。然后我检查了bq mk,我看不到任何设置标准 SQL 标志的选项。

更奇怪的是,如果我使用标准 SQL 数据类型创建表,

它创建了一个带有 的表value INTEGER,稍后我将深入研究 ARRAY 和 STRUCT 数据类型的行为。有什么明显的我失踪了吗?

0 投票
1 回答
733 浏览

google-bigquery - 在同一张表中输出不同的查询结果

在最近的更新之后,google bigquery 现在允许从特定国家的表中进行查询。我想在包含单词“space”的 us 表中找到来源(网站)的数量,并将其与 Japan 表中的类似结果并排显示。我正在做的查询是 -

但它会导致表在 japan 和 usa 列中具有相同来源的多次重复。另一个奇怪的事情是 o/p 表包含相同数量的日本和美国的行,很明显,包含“空间”一词的站点数量在 2 个表中是不同的。我使用的是标准 sql,而不是旧版。任何帮助表示赞赏。谢谢。
注意:并排,我的意思是会有两列,日本列显示日本的网站,美国列显示美国的结果。

0 投票
1 回答
1249 浏览

sql - BigQuery 在同一查询中展平 GA 会话和命中级别字段

在标准 SQL 中,我希望能够在同一个查询中查询以下所有内容

  • 自定义维度
  • hits.customDimensions
  • hits.customMetrics
  • hits.product.customDimensions

到目前为止,我已经想出了类似的东西(包括两个 GA 属性的 UNION,一个用于移动设备,另一个用于桌面) - 我将添加比这更多的列,我无法想象拥有它们作为子选择是最好的方法: