在 Google bigquery 中转换数据 - 提取文本、将其拆分为多列并旋转数据

2023-12-24

我在大查询中有一些博客数据,我需要对其进行转换以使其更易于使用和查询。数据如下:

我想提取并转换数据在 Results{…..} 之后的大括号内(蓝色)。数据的形式为‘(\d+((PQ)|(KL))+\d+)’结果数组中可以有 1-20 多个条目。我只对前 16 个条目感兴趣。

我已经能够使用 Substr 和 regext_extract 将大括号内的数据提取到新列中。但我无法将其拆分为列(有时只有 1 个结果,因此缺少分隔符“,”。我是正则表达式新手,也许我可以使用类似 '(\d+((PQ)| (KL))+\d+){1}’等将数据拆分为多个列,然后对其进行透视。

在我的例子中,理想的输出是将其转换为如下形式:

在上述解决方案中,原始表中的每一行都会重复 1 到 16 次,具体取决于结果数组中的项目数。

我不完全确定是否可以在大查询中执行此操作。如果有人能在这里帮助我,我将不胜感激。

如果这是不可能的,那么对于结果数组中条目少于 16 个的情况,我可以为每个事件设置 16 行,Event_details 中的值为 NULL。

In case both of these are not possible, the last solution would be to have it transformed into something like: back_up_output_table

我想要转换数据的原因是,在大多数情况下,我需要找到哪些结果数组项出现以及出现的顺序。


看一下这个:使用 bigquery 将字符串拆分为多列 https://stackoverflow.com/questions/22154275/split-string-into-multiple-columns-with-bigquery/22166014#22166014。 在他们的例子中,它是由空格分隔的。将 \s 替换为 ','

就像是:

SELECT  
Regexp_extract(StringToParse,r'^*{(?:[^,]*,){0}(\d+(?:(?:PQ)|(?:KL))+\d+)\s?') as Word0,
Regexp_extract(StringToParse,r'^*{(?:[^,]*,){1}(\d+(?:(?:PQ)|(?:KL))+\d+)\s?') as Word1,
Regexp_extract(StringToParse,r'^*{(?:[^,]*,){2}(\d+(?:(?:PQ)|(?:KL))+\d+)\s?') as Word2,
Regexp_extract(StringToParse,r'^*{(?:[^,]*,){3}(\d+(?:(?:PQ)|(?:KL))+\d+)\s?') as Word3,
FROM
(SELECT 'bla{1234PQ5,6789KL0,1234PQ5,6789KL0,123' as StringToParse)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google bigquery 中转换数据 - 提取文本、将其拆分为多列并旋转数据 的相关文章

  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • 正则表达式 - 将 target="blank" 添加到我的内容中的所有 标记链接

    有人可以帮我在 C net 中创建一个正则表达式来添加target blank to all a 在我的内容中标记链接 如果链接已经设置了目标 则将其替换为 blank 目的是在新窗口中打开我的内容中的所有链接 感谢你的帮助 dotnet岩
  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • 正则表达式:匹配未包含在 [] 中的空格

    例如 对于这个字符串 div img wrapper img title Hello world 我想匹配第一个空格 但不匹配第二个空格 包含在 中 正则表达式是什么 以下表达式将通过使用前瞻断言来完成这项工作 gt 下划线代表空格 该表达
  • Bash:单行命令以与 grep 命令相反的状态退出?

    如何减少以下 bash 脚本 grep P STATUS Perfect recess txt exit 1 exit 0 看起来我应该能够用一个命令来完成它 但我这里总共有 3 个命令 我的程序应该 阅读课间休息 txt 如果它包含 ST
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • 如何识别拼写不同的相似单词

    我想从数据库中过滤掉重复的客户名称 一位客户可能有多个同名但拼写差异不大的系统条目 这是一个示例 名为 Brook 的客户可能有 3 个系统条目 有了这个变化 布鲁克 贝尔塔 布鲁克 贝尔塔 比鲁克 贝尔塔 假设我们将此名称放入一个数据库列
  • 使用 Google Storage Transfer API 将数据从外部 GCS 传输到我的 GCS

    我正在开发一个由 ReactJs 前端和 Java SpringBoot 后端组成的 Web 应用程序 该应用程序要求用户将数据从他们自己的 Google Cloud 存储上传到我的 Google Cloud 存储 申请流程如下 前端请求用
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • BigQuery 中 _PARTITIONDATE 与 _PARTITIONTIME 伪列的使用

    在官方的最佳实践中我found https cloud google com bigquery docs best practices costs 按日期对表进行分区并查询相关分区 例如 WHERE PARTITIONDATE 2017 0
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • C++ - 结构与类[重复]

    这个问题在这里已经有答案了 可能的重复 C C 结构与类 https stackoverflow com questions 2750270 c c struct vs class C 中的 POD 类型是什么 https stackove
  • 将 HTML 导出到 Excel 而不丢失格式

    我有一个生成报告的 asp net 页面 无论好坏 整个事情都是使用嵌套表生成的 我能够将页面导出到 Excel 但是我丢失了所有格式 无法设置列宽等 有办法处理这个问题吗 我愿意添加 html 方面所需的任何愚蠢的 MS Office 特
  • 在 SQL 查询中执行正则表达式(替换)

    将所有 lt 替换为的最佳方法是什么 lt 在给定的数据库列中 基本上执行s lt lt gi Notes 必须工作于微软SQL服务器 http en wikipedia org wiki Microsoft SQL Server SQL
  • Laravel - 未定义的偏移量 0 - collection.php

    我正在编写一个网络应用程序 后端是一个基于 Laravel 4 的 RESTFul 应用程序 我在使用特定控制器时遇到问题 BedsController php class BedsController extends BaseContro
  • RPY2:导入程序因 .Renviron 失败

    这是使用时应该发生的事情rpy2 robjects packages importr对于基础 R 包 例如stats gt gt gt from rpy2 robjects packages import importr gt gt gt
  • 量角器 - 描述未定义

    我正在使用 Protractor js 进行测试 当我尝试使用运行测试用例时 量角器 e2e main test spec js 我的conf js An example configuration file exports config
  • DatePicker 不更新 Android 中的 Textview

    当选择某个日期的日期选择器时 我试图更新文本视图 但它的textview 没有更新 我正在使用两个日期选择器来更新两个不同的文本视图 这是我更新 TextView 的代码 public class SearchingActivity ext
  • wxPython CheckListBox 与 HTML

    我正在使用 wxPython 创建一个 GUI 应用程序 现在我正在使用 wx CheckListBox 来显示带有复选框的选项 但我希望使用 HTML 来格式化 CheckListBox 中的文本 解决这个问题的最佳方法是什么 Repla
  • 如何滚动重启一群杂种集群

    任何人都知道一种通过 Capistrano 以 滚动 方式重新启动杂种集群的好方法 例如一次一个杂种 如果每个人都有一点等待时间 让杂种也能加载 Rails 应用程序 那就太好了 我已经做了一些搜索 但没有找到太多 所以在我自己深入研究 m
  • 我可以使用 boost 库来执行跨平台应用程序吗?

    boost c 库中是否有任何 WinAPI WinExec 模拟 我需要从我的程序运行可执行文件 并将参数传递给它 我应该为此使用任何其他跨平台库 还是自己处理我的程序编译的操作系统 重要的 请参阅末尾的 POSIX 系统更新
  • 为什么我会收到有关此代码示例的警告?什么才是正确的呢?

    我正在学习一些 C 并且正在阅读scanf from 本教程 http www tutorialspoint com c standard library c function scanf htm其中包含以下代码块 include
  • WCF NetTcpBinding 缓冲与流性能问题

    我编写了一个 WCF 服务 该服务应该使用 Streamed TransferMode 转换任何大小的文件NetTcpBinding and System IO Stream object 在运行性能测试时 我发现了明显的性能问题 然后我决
  • 如何设置带空格的环境变量?

    我需要使用批处理文件设置环境变量的值 我为此编写了脚本 echo off set value Hello world setx M srijani srijani value 它给出了错误 ERROR Invalid syntax Defa
  • 重命名字典键

    有没有一种方法可以重命名字典键 而无需将其值重新分配给新名称并删除旧名称键 并且不迭代 dict 键 值 的情况下OrderedDict https docs python org 3 library collections html co
  • JPA更新多对多删除记录

    我在两个实体之间有 ManyToMany 关系 当我在拥有方执行更新时 JPA 似乎从我的数据库中删除了所有链接记录并重新插入它们 对我来说这是一个问题 因为我有一个在删除记录之前触发的 MySQL 触发器 关于如何解决这个问题有什么想法吗
  • .NET 进程间通信的最佳选择是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我应该使用命名管道还是 NET Remoting 与计算机上正在运行的进程进行通信 WCF是最好的选择 它支持许多不同的传输机制 https l
  • 是否可以在 c/c++ 中的 double 类型(8 字节)变量中存储 8 个字符(每个字符 1 字节)?

    我正在将一些旧版 Fortran77 代码迁移到 C C 在Fortran77代码中 如果从文件中读入8个字符 则可以将它们存储在real 8类型的变量中 没有问题 是否可以在 C 或 C 中做类似的事情 如果是这样 我该怎么做 我无法在互
  • 标签指向 PHP 动态生成的图像?

    是否可以将图像重定向到动态生成的图像 使用 PHP 我有一个动态创建的图像 它有一个扩展名 PHP 显然 并且该服务器不在我的控制之下 所以我想将 somename jpg 在我的服务器上 重定向到 remoteserver dynamic
  • Rails 4 - 当前布局的名称?

    我找到了许多关于 Rails 3 的资源 但没有找到关于 Rails 4 的资源 为了保持干燥 我们有一个定义一些元标记的方法 我想将布局包含在title param app controllers application controll
  • 在 Google bigquery 中转换数据 - 提取文本、将其拆分为多列并旋转数据

    我在大查询中有一些博客数据 我需要对其进行转换以使其更易于使用和查询 数据如下 我想提取并转换数据在 Results 之后的大括号内 蓝色 数据的形式为 d PQ KL d 结果数组中可以有 1 20 多个条目 我只对前 16 个条目感兴趣