在 BigQuery 中透视重复字段

2024-01-23

我的架构看起来像这样:

userid:string
timestamp:integer
params:nested/repeated field with 2 fields
  - name:string (possible values: "a", "b","c")
  - value:string

我希望我的查询返回以下内容:

userid, timestamp, a, b, c
123, 1447799796, foo, bar, xyz
233, 1447799900, bob, xxx, yyy
:
:

做到这一点最简单的方法是什么?


当预先知道可能的值并且没有太多的值需要手动编写 SQL 时 - 您可以使用以下内容:

SELECT 
  userid,
  ts,
  MAX(IF(params.name = "a", params.value, NULL)) WITHIN RECORD a,
  MAX(IF(params.name = "b", params.value, NULL)) WITHIN RECORD b,
  MAX(IF(params.name = "c", params.value, NULL)) WITHIN RECORD c
FROM yourTable 

如果可能的值提前“未知”和/或每次运行都是动态的,则可以使用下面的辅助 SQL 来生成上述类型的 SQL。

SELECT 'select userid, ts, ' + 
   GROUP_CONCAT_UNQUOTED(
      'max(if(params.name = "' + STRING(params.name) + '", params.value, null)) 
       WITHIN RECORD as [' + STRING(params.name) + ']'
   ) 
   + ' from yourTable '
FROM (SELECT params.name FROM yourTable GROUP BY params.name)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 BigQuery 中透视重复字段 的相关文章

  • 根据 Google BigQuery 中的查询结果创建表

    我们正在使用谷歌大查询 https developers google com bigquery 通过Python API 如何根据查询结果创建一张表 新表或覆盖旧表 我回顾了查询文档 https developers google com
  • Firebase BigQuery 导出 - 历史数据

    当我尝试在 BigQuery 上搜索事件的历史数据时 我只能找到上周的事件 我无法在任何地方找到信息是否正确 或者我做错了什么 基本上我似乎只能查询过去一周的 events YYYYMMDD 它是否正确 您是否有机会在一周前从 Fireba
  • 可以在不填充数据的情况下创建 BigQuery 表/架构吗?

    是否可以在不先用数据填充的情况下创建表模式 最好使用 Google 的 python 客户端 谷歌的文档似乎没有提供明确的是或否的答案 他们建议创建一个表 https cloud google com bigquery docs table
  • 如何使用 CLI bq 命令创建一次性数据集副本(无计划重复)

    我想使用 bash 脚本在 BigQuery 中制作一次性数据集复制 来自source dataset A to target dataset B This operation is easy to do in BigQuery Conso
  • BigQuery - 预定查询更新通知电子邮件

    有没有办法将计划查询通知电子邮件更新为自定义内容 默认情况下 它是创建者的电子邮件 但是 这通常是没有真正电子邮件收件人的服务帐户 例如 通过 terraform 配置 我们将拥有一个服务帐户 我们希望将电子邮件通知目标从 SA 更新为支持
  • 使用 Java 在 BigQuery 中保存 Array

    我正在尝试使用 Spark Big Query 连接器将数据保存到 Big 查询中 假设我有一个如下所示的 Java pojo Getter Setter AllArgsConstructor ToString Builder public
  • Google BigQuery,使用“unnest”函数时丢失了空行

    StandardSQL WITH tableA AS SELECT T001 T002 T003 AS T id 1 5 AS L id UNION ALL SELECT T008 T009 AS T id NULL AS L id SEL
  • 在 Google Bigquery 中创建表 SQL 语法

    我一直在读bigquery 文档 https cloud google com bigquery loading data从昨天深夜开始 了解的就很少了 它讨论了通过不同的方法加载数据 但没有说明如何创建我要向其中加载数据的表 当我使用 W
  • 无法访问 Big Query 中类型为 ARRAY> 的字段

    我正在尝试在 BigQuery 上使用标准 SQL 方言 即不是旧版 SQL 运行查询 我的查询是 SELECT date hits referer FROM refresh ga sessions xxxxxx LIMIT 1000 但不
  • 如何解密 BigQuery 中的列?

    我在 BigQuery 中有一些加密列 我想使用 BigQuery 函数对其进行解密 用于加密它们的机制是 AES 256 使用的向量以 UTF8 编码 生成的数据采用 Base64 加密 我想要做的是使用函数解密 BigQuery 中传递
  • Google BigQuery 底层架构

    所以我大约 10 分钟前才开始摆弄 Google BigQuery 我想知道是否有人知道他们用来存储数据的底层架构 例如 这只是他们自己的下一代 BigTable 基础设施吗 另外 他们在索引 索引重建等方面使用什么样的策略是否清楚 我只是
  • BigQuery 类型有多少字节

    以下类型在 BigQuery 中占用多少字节 时间戳 Datetime Date 我的猜测是日期可以存储在 2 个字节中 时间戳可能是 8 个字节 但我不确定这一点 并且在https cloud google com bigquery do
  • 如何通过循环变量在 dbt 中多次运行 SQL 模型?

    我有一个 dbt 模型 测试模型 接受地理变量 zip state region 在配置中 我想通过循环变量来运行模型三次 每次使用不同的变量运行它 问题是 我有一个如下所示的宏 它将变量附加到输出表名称的末尾 即运行测试模型 with z
  • 使用 BigQuery 结合 WHERE 子句查找标准差结果的异常值

    标准差分析是查找异常值的有效方法 有没有办法合并此查询的结果 找到远离平均值的第四个标准差的值 SELECT AVG weight pounds STDDEV weight pounds 4 as high FROM publicdata
  • 有没有办法确定或指定 BigQuery 将数据存储在哪个地理区域?

    有没有办法确定哪个区域 像这些 https cloud google com compute docs zones available BigQuery 将我的数据存储在 更重要的是 有没有办法指定我的数据发送到 BigQuery 时的存储
  • Google BigQuery 与 PHP 集成

    我需要帮助将 google bigquery 代码集成到 PHP 中 所以我可以从 php 代码本身执行查询和其他类型的操作 需要您的帮助并建议我一些工作示例链接 提前致谢 这是一段代码 正确地创建一个Google Client using
  • 如何在 BigQuery/SQL 中将行转置为包含大量数据的列?

    我在将 BigQuery 中的大量数据表 15 亿行 从行转置为列时遇到问题 我可以弄清楚如何在硬编码时使用少量数据来完成此操作 但是对于如此大量的数据 该表的快照如下所示 CustomerID Feature Value 1 A123 3
  • BigQuery:从带有时区的日期时间中提取日期

    我正在尝试返回 BigQuery 中的一列以及从该列中提取的日期开始时间 该列中的值的格式为 11 27 2019 14 40 15 CET 0100 我写了以下代码 SELECT EXTRACT DATE FROM TIMESTAMP s
  • Python 单元测试 Google Bigquery

    我在对以下代码块进行单元测试时遇到问题 from google cloud import bigquery from google oauth2 import service account def run query query gcp
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h

随机推荐

  • 如何使用 flutter 访问 JSON 对象?

    如何访问我的 JSON 对象 Getting Employee Title null如何直接使用该对象 像这样获得正确的输出Text Employee Title list 0 title 或者直接使用模型对象的任何其他方式 正确的方法是什
  • 如何更改日历对象的格式[重复]

    这个问题在这里已经有答案了 我有一个字符串 例如Thu May 10 15 48 23 IST 2018 如何将此字符串转换为日历对象形式 格式为 2018 05 10 15 48 23 84 首先使用查看DateTimeFormatter
  • Emberjs + data + Rails - 未捕获类型错误:无法调用未定义的方法“map”

    当我尝试使用 emberjs ember 数据从 Rails db 加载数据时 出现此错误 未捕获的类型错误 无法调用未定义的方法 map 这是咖啡脚本代码 window Cosmetics Ember Application create
  • 只是尝试为输入文本提供粗体字体

    我试图用下面的方式为输入提供粗体字体 但它不起作用
  • 有没有办法使用“matplotlib”生成视网膜图?

    蟒蛇的matplotlib不生成 Retina 显示质量LaTeX默认文本 是否有可生成 Retina 质量输出的设置或附加包 你正在用吗 Agg 模式 标准 创建 PNG 图形 您可以使用 Matplotlib 创建 SVG 图形 其质量
  • 为什么带有引号的空格的命令在通过 ssh 传递时不起作用?

    我正在构建这个项目 其中我必须使用 ssh 执行 UNIX 命令 这是我的问题 当我在 UNIX shell 中执行以下命令时 echo Hello World 它产生输出 Hello World 中间有 5 个空格 因为参数是在双引号内给
  • React Native 重复超时将集合写入 firestore@firebase/firestore:Firestore (8.4.2):连接 WebChannel 传输错误

    我正在尝试将用户从 React Native 应用程序写入 Firestore 集合 用户在身份验证下在 firebase 中创建 但随后挂在 firebase firestore collection users doc uid set
  • 如何在 intellij 中调试 play Framework 2.1.0 scala 测试

    我尝试使用 intellij 调试一些测试 我已经配置了远程调试 如下所示 如何在IntelliJ Idea中进行play框架的调试 https stackoverflow com questions 5390178 how to make
  • preg_match_all 进入简单数组

    我有 preg match all 函数 preg match all h2 h2 is source output PREG SET ORDER 它按预期工作 但问题是 它对所有项目进行了两次 preg matches 并放入一个巨大的多
  • 我们可以使用Javascript获取浏览器历史记录吗?

    我们可以使用 Javascript 获取我的网站的浏览器历史记录吗 我可以看到一些旧的帖子和线程谈论这个 但这些方法对我不起作用 是否可能以及如何实现 出于隐私原因 不可能读取客户端浏览器历史数据 如果您正在尝试观察或生成有关访客的数据仅在
  • iOS6中控制MKMapView的动画速度

    我正在尝试在地图视图上跟踪一辆车 此代码应该以相同的速度为汽车和地图设置动画 以便注释视图始终出现在中心 UIView beginAnimations nil context NULL UIView setAnimationCurve UI
  • 如何根据多个条件用前一行填充 pandas 数据框列的行?

    免责声明 这可能是重复的 但我找不到确切的解决方案 请随意将此问题标记为重复 并在评论中提供重复问题的链接 我仍在学习 python 数据帧操作 这可能有一个非常简单的解决方案 我无法弄清楚 我有一个带有单列的 python 数据框 现在
  • 将分类数据传递给 Sklearn 决策树

    有几篇关于如何将分类数据编码到 Sklearn 决策树的文章 但从 Sklearn 文档中 我们得到了这些 决策树的一些优点是 能够处理数值数据和分类数据 其他技术通常专门用于分析仅具有一种变量类型的数据集 请参阅算法以获取更多信息 但运行
  • ManagedObjectContext 为零

    我正在尝试将核心数据添加到现有项目中 我有 1 添加了核心数据框架 2 向AppDelegate添加访问器和属性 3 创建数据模型文件 现在当我尝试打电话时NSManagedObjectContext context self manage
  • Ruby:通过使用模块扩展 File 来处理文件格式

    一旦我有一个File http ruby doc org core 2 3 1 File html例如 我想检查它是否匹配文件格式并且extend http ruby doc org core 2 3 1 Object html metho
  • Java 的 PDF 生成库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道以前有人问过这个问题 但我仍然不确定在我当前的项目中使用哪个 PDF 生成框架 我的要求 即时生
  • ScrollView 内 ListView 的滚动问题

    这是概念性的场景 不包括线性布局 ScrollView Button Checkboxes Spinner ListView full size non scrolling AdMob advert 即滚动窗格 顶部有一个过滤 UI 后面是
  • 冻结 Python Pandas 的问题

    我刚刚从 Python 2 7 升级到 3 6 我有一个相当大的带有 GUI 的脚本 我已使用 pyinstaller 将其冻结为 exe 文件 我现在对 py 脚本做了一些更改 在我冻结它之前它可以与新的 Python 版本一起使用 但是
  • 是否有内置函数可以清除所有变量值

    我正在寻找一种方法来清除 Perl 程序中的所有数组 目前 我正在调用一个显式 重置 所有数组的子例程 sub clear arrays array1 array2 array3 这迫使我找到程序中的所有数组并在子例程中逐字引用它们 我查看
  • 在 BigQuery 中透视重复字段

    我的架构看起来像这样 userid string timestamp integer params nested repeated field with 2 fields name string possible values a b c