问题标签 [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.
sql - BigQuery:联合两个基于联合 Google 电子表格的不同表
我有两个不同的 Google 电子表格:
一个有 4 列
一个包含上一个文件的 4 列,还有 2 列
我在 Google BigQuery 中将它们配置为联合源,现在我需要创建一个视图来连接两个表的数据。
两个表都有Col1
列,其中包含一个 ID,此 ID 在所有表中是唯一的,不包含复制数据。
我正在寻找的结果表如下:
对于第一个文件没有的列,我期待一个NULL
值。
我使用的是标准 SQL,这是一个可用于生成示例数据的语句:
一个简单UNION ALL
的不起作用,因为表有不同的列
通配符运算符不是一种合适的方式,因为联合来源不支持
当然这是一个样本数据,只有 3-5 列,真实的表有 20-40 列。因此,我需要SELECT
逐个字段显式显示的示例不是一个可观的方法。
有没有一种工作方式可以加入这两个表?
group-by - 对至少有一列具有真值的行进行分组
我有一张这样的桌子
可以用这个语句生成
email
按, year
,分组month
,输出表需要有true
值(对于两列中的每一flag
列),如果在分组数据中至少有一行有true
值
结果表应该是这个
我开始按前 3 列对所有标志进行分组,但现在我不得不确定true
每个数组中是否至少有一个值
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 生成这样的表?
sql - BigQuery 优化查询,过滤 STRUCT 字段的嵌套数组并分组
我试图弄清楚如何编写 GQL(Google SQL)查询来过滤深度嵌套的结构,然后再次嵌套它,并将 STRUCT 属性的第一条记录保留在与 ARRAY 相同的级别。
我准备了一个模式示例
并且需要一个扁平化所有嵌套字段的源过滤器查询来进行过滤。
主要问题是,在此过滤之后,想要对所有内容进行分组saleItems
(sale._id
返回初始结构)并检索serviceFeedback
具有 STRUCT 类型的字段。
JSON格式的预期结果是:
我写了我想到的最简单的查询想法。它产生正确的结果。但可能有可能以更有效的方式重写它,
你能建议我一个更好的解决方案来达到同样的结果吗?
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:耶鲁}]
google-bigquery - 如何在 bigquery 中创建标准 SQL 表
我刚刚检查了 Web UI,创建了一个空表,所有暴露的数据类型都是旧的 SQL 数据类型。然后我检查了bq mk
,我看不到任何设置标准 SQL 标志的选项。
更奇怪的是,如果我使用标准 SQL 数据类型创建表,
它创建了一个带有 的表value INTEGER
,稍后我将深入研究 ARRAY 和 STRUCT 数据类型的行为。有什么明显的我失踪了吗?
google-bigquery - 在同一张表中输出不同的查询结果
在最近的更新之后,google bigquery 现在允许从特定国家的表中进行查询。我想在包含单词“space”的 us 表中找到来源(网站)的数量,并将其与 Japan 表中的类似结果并排显示。我正在做的查询是 -
但它会导致表在 japan 和 usa 列中具有相同来源的多次重复。另一个奇怪的事情是 o/p 表包含相同数量的日本和美国的行,很明显,包含“空间”一词的站点数量在 2 个表中是不同的。我使用的是标准 sql,而不是旧版。任何帮助表示赞赏。谢谢。
注意:并排,我的意思是会有两列,日本列显示日本的网站,美国列显示美国的结果。
sql - BigQuery 在同一查询中展平 GA 会话和命中级别字段
在标准 SQL 中,我希望能够在同一个查询中查询以下所有内容
- 自定义维度
- hits.customDimensions
- hits.customMetrics
- hits.product.customDimensions
到目前为止,我已经想出了类似的东西(包括两个 GA 属性的 UNION,一个用于移动设备,另一个用于桌面) - 我将添加比这更多的列,我无法想象拥有它们作为子选择是最好的方法: