如何在不使用数据透视的情况下在 SQL 中将行转换或转置为列?

2023-12-11

我在 SQL 中转置数据时遇到一个问题。例如下面给出的表格

id source_name value
1 cp x
1 cp y
1 hi a
2 li b
2 cp c
2 li d
3 li e

我需要以下格式的表格(转置但带有字符串聚合)-

id cp hi li mi
1 x,y a null null
2 c null b,d null
3 null null null d

通过当前的 sql 查询,我得到以下格式的表。

id cp hi li mi
1 x a null null
2 c null b null
3 null null null d

任何人都可以调整查询或建议 SQL 中的新查询(平台 - Bigquery)吗?

当前查询 -

select id, any_value(if(source_name = 'cp', value, null)) as cp,
any_value(if(source_name = 'hi', value, null)) as hi,
any_value(if(source_name = 'li', value, null)) as li
any_value(if(source_name = 'mi', value, null)) as mi
from table_name group by id

Use PIVOT 运算符 instead

select *
from `project.dataset.table`
pivot (string_agg(value) for source_name in ('cp', 'hi', 'li', 'mi'))    

如果应用于您问题中的样本数据

enter image description here

输出是

enter image description here

查看https://stackoverflow.com/a/67479622/5221944如果你想让它为你动态构建列列表

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不使用数据透视的情况下在 SQL 中将行转换或转置为列? 的相关文章

  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • H2 SQL 日期比较

    在 H2 数据库中 如何在 TIMESTAMP 类型的列上运行查询 SELECT FROM RECORDS WHERE TRAN DATE lt 2012 07 24 Try 2012 07 24
  • SQL Server:为什么 ISO-8601 格式的日期依赖于语言?

    我需要一些帮助来理解 SQL Server 中的日期格式处理 如果您尝试以下操作 它将返回正确的结果 SET LANGUAGE English SELECT CAST 2013 08 15 AS DATETIME 2013 08 15 00
  • meta_query,如何使用关系 OR 和 AND 进行搜索?

    已解决 请参阅下面的答案 我有一个名为的自定义帖子类型BOOKS 它有几个自定义字段 名称为 TITLE AUTHOR GENRE RATING 我该如何修复我的meta query下面的代码以便仅books在自定义字段中包含搜索词 tit
  • 没有提示指令的直连接中表的顺序是否会影响性能?

    所有基于 SQL 的 RDBMS 10 年前的版本 直接连接查询 没有提示指令 中的表顺序是否会对最佳性能和内存管理产生影响 听说最后一个join应该是最大的表 您的数据库的查询优化器如何处理这种情况 回答你的问题 是的 表的顺序在连接中有
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • 从 Google Apps 脚本运行保存的 bigquery 查询?

    我们经常使用 Google Apps 脚本来运行 BigQuery 查询并将其放入 Google Sheet 中 然而 工作流程很烦人 在 BigQuery 中运行查询 直到正确为止 复制 粘贴到文本编辑器以放入换行斜杠 在应用程序脚本中运
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • SQL Server 中的 FIFO 查询

    我正在构建一个库存管理应用程序c with SQL server 我想做一个FIFO从我的表查询 我以可变价格购买了相同的产品 之后我卖掉了其中一些 我想根据 先进先出 进行查询BatchDate柱子 所以我想通过PurchasePrice
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • Bigquery 取消或停止尚未启动的批量查询作业 (Status.State = "PENDING")

    如果由于某种原因想要停止 取消尚未启动的批量查询作业 Status State PENDING 是否可以这样做 使用的库 net Google Apis Bigquery v2 1 5 0 122 beta BigQuery 现在支持取消
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • SKIP加锁和nowait的区别

    pl sql 中 SKIP 锁定游标和 nowait 游标之间的区别 我认为我找到的这张图片是描述差异的最佳例子 详细说明 http viralpatel net blogs oracle skip locked
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • 重用 t-sql 游标的起始位置?

    我正在开发一个在临时表上使用游标的存储过程 我已经阅读了一些关于为什么不需要游标的内容 但在这种情况下我相信我仍然需要使用游标 在我的过程中 我需要遍历表的行两次 声明游标后 已经单步执行临时表并关闭游标 重新打开时游标的位置是否仍保留在表
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0

随机推荐

  • cs50的tideman lock_paiors函数问题

    大家好 我的 pset3 上的锁对功能有问题 tideman 希望得到一些反馈 bool checkcycle int from int to if from to return true int i for i 0 i lt candid
  • IIS 6.0 中是否有相当于 Apache 的 auto_prepend_file 的功能

    在 LAMP 堆栈上我可以使用 gt php value auto prepend file bootstrap php 在 htaccess 中引导一系列我想在处理任何页面之前执行的命令 是否可以在 IIS 6 0 中执行相同的操作 更新
  • Java 正则表达式转大写

    所以我有一个像这样的字符串 2000cc 车辆翻新发动机 我想把它变成 2000CC 车辆翻新发动机 2000CC 上的大写字母为 cc 我显然做不到text replaceAll cc CC 因为它将用大写版本替换所有出现的 cc 因此单
  • 检测编译后的perl脚本是否动态加载模块

    我正在使用 Strawberry Perl 运行 Windows 10 我用PAR 打包机模块来制作我的一些 Perl 脚本的可执行版本 我发现有些模块例如XML LibXML 需要安装 Perl 才能运行可执行文件 由于我是为没有 Per
  • R范围:在没有本地环境的情况下强制函数中的变量替换

    我在循环中定义函数 并尝试强制评估循环变量 而不必携带私有环境 示例 一组函数handlers h1 handlers h2 handlers h6只是将 1 2 6 传递给另一个函数 如下所示 handlers lt list for i
  • 迭代器的默认值是多少?

    对于我正在使用的任何 STL 容器 如果我使用迭代器的默认构造函数声明一个迭代器 此特定容器类型 则迭代器将被初始化为什么 例如 我有 std list
  • 返回指向静态局部变量的指针安全吗?

    我正在处理一些广泛使用返回指向静态局部变量的指针的习惯用法的代码 例如 char const GetString static char sTest 5 strcpy sTest Test return sTest 我认为这是安全的 对吗
  • 快速删除 Unicode U+2018 左单引号,例如“Ali 到 Ali”

    如何从字符串中删除 Unicode U 2018 左单引号 古拉姆 阿里 阿里 凯尔 阿里 谢尔 阿拉卡达里 我想删除出现的 A 一个 你 字符串中的 u 分别为 A a U u I tried var myString Sozmah Qa
  • pyinstaller 无法执行脚本 pyi rth pkgres

    我有一个用 pyinstaller 制作的 exe 文件 当我尝试运行它时 它给了我这个错误 ModuleNotFoundError 没有名为 pkg resources py2 warn 的模块 50728 无法执行脚本 pyi rth
  • 使用 AIDL 处理跨进程错误的推荐方法 (Android)

    我有一个活页夹服务和一个位于不同进程中的客户端 使用 AIDL 当客户端调用我的远程 Binder 服务时 有时我需要将错误 异常 转发回客户端 然而 根据我的理解 这是不可能的 我尝试从活页夹服务中抛出 RemoteException 看
  • 使用大数组进行反向地理编码是最快的方法吗? - JavaScript 和性能

    我有很多观点Google Maps我想为每个点显示最近的城市 因此是反向地理编码 我有一个像这样的多维数组 citta vicine var comuni Abano Terme PD 45 3594 11 7894 Abbadia Cer
  • NetBeans功能如何关闭

    我已经安装了 NetBeans 15 他们默认打开了一个功能 我觉得这个功能非常分散注意力 我该如何关闭它 它是下图中突出显示的代码 这是不可编辑的额外文本 对我来说只是妨碍 先感谢您 感谢一位同事找到了答案 关闭下面的 显示内联提示
  • R 中不同颜色组合的堆积条形图

    我需要从表单的数据创建一个堆积条形图c a b a 和 b 由 c 标准化 使得 a 和 b 加起来为 1 我拥有的数据需要特定的格式 因此 a 和 b 需要是列表 下面是给定这些特定格式的最简单的可重现示例 A list 2 1 1 2
  • 是否需要构建 boost.signals2 库?

    我的系统在构建 boost 库时遇到问题 我知道大多数 boost 库 幸运的是 只是不需要构建的标头 有一些例外 是否需要构建 boost signals2 库 boost signals2 库也依赖于 boost signals 库吗
  • 使用 C 解析 URL 的最佳方法?

    我有一个像这样的网址 http 192 168 0 1 8080 servlet rece 我想解析 URL 来获取值 IP 192 168 0 1 Port 8080 page servlet rece 我怎么做 就我个人而言 我偷了HT
  • 除了在每次闭包之前克隆它之外,还有其他选择在多个闭包中共享 Arc 吗?

    我有这样的事情 use std sync Arc fn main let arc Arc new 42 move arc clone move arc clone 我正进入 状态 error E0382 capture of moved v
  • 如何实现标签系统

    我想知道实现标签系统的最佳方法是什么 就像 SO 上使用的那样 我正在考虑这个问题 但我无法想出一个好的可扩展解决方案 我正在考虑有一个基本的 3 表解决方案 有一个tags桌子 一个articles桌子和一个tag to articles
  • number_in_month 练习(SML 中多个列表的迭代)

    我在 SML 中有两个列表 假设列表 A a b c d e f 和列表B b e 我想计算 B 中每个项目与 A 中每个三元组的第二个元素匹配的次数 输出应该是 2 因为b and e每个在 A 中出现一次 到目前为止 这是我的代码 但是
  • Blogger 主题的下一个和上一个按钮

    这可能需要花费很多时间 并且可能是一个很难回答的问题 但请帮忙 我有一个博主博客 这是一个阅读日本漫画的博客 这个博客的主题实际上是在未完全开发的情况下发布的 我下载并应用了它 尽管我几乎完成了必要的地方的编码 但仍然遗漏了一些问题 其中一
  • 如何在不使用数据透视的情况下在 SQL 中将行转换或转置为列?

    我在 SQL 中转置数据时遇到一个问题 例如下面给出的表格 id source name value 1 cp x 1 cp y 1 hi a 2 li b 2 cp c 2 li d 3 li e 我需要以下格式的表格 转置但带有字符串聚