转置查询输出

2023-11-29

我有一个正常的选择查询,其结果如下输出。

select cid,x1,x2,x3,x4,fy
  from temp_table;

cid     x1  x2  x3  x4  fy
----------------------------
6657    100 0   0   200 2014
6658    300 0   0   400 2015
6659    500 0   0   600 2016

我希望它重写它并打印以下输出。

    2014    2015    2016    
-------------------------   
x1  100     300     500     
x2  0       0       0       
x3  0       0       0       
x4  200     400     600 

如何才能实现这一目标?


这是一种仅使用子查询和聚合即可实现此目的的方法:

select name,
       sum(case when fy = 2014 then x end) as "2014",
       sum(case when fy = 2015 then x end) as "2015",
       sum(case when fy = 2016 then x end) as "2016"
from (select fy,
             (case when n.n = 1 then 'x1'
                   when n.n = 2 then 'x2'
                   when n.n = 3 then 'x3'
                   when n.n = 4 then 'x4'
              end) as name,
             (case when n.n = 1 then x1
                   when n.n = 2 then x2
                   when n.n = 3 then x3
                   when n.n = 4 then x4
              end) as x
      from temp_table cross join
            (select 1 as n from dual union all
             select 2 from dual union all
             select 3 from dual union all
             select 4 from dual
            ) n
     ) t
group by name;

您还可以使用pivot,但这是 Oracle SQL 的最新补充,因此我倾向于使用此方法。

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

转置查询输出 的相关文章

随机推荐

  • 将矢量世界地图添加到 R 中的光栅动画

    我用以下内容创建了一个动画animate的功能raster包并想在其上添加世界矢量地图 这是我的代码 在对其进行动画处理之前 我根据月平均温度的 3D 数组创建了一个栅格块 r lt brick ncols nb cols nrows nb
  • 为 Python 安装 PyObjC 时出现问题

    我试图在我的 Mac OS X El Capitan 上安装 PyObjC 下载大约 40 分钟后 我收到一个错误 然后它停止了 我尝试在终端中使用以下代码进行安装 pip install pyobjc 错误说 Command python
  • jQuery 获取元素相对于窗口的位置

    给定 HTML DOM ID 如何在 JavaScript JQuery 中获取元素相对于窗口的位置 这与相对于文档或偏移父级不同 因为该元素可能位于 iframe 或某些其他元素内部 我需要获取当前显示的元素矩形的屏幕位置 如位置和尺寸
  • 如何高效地将 npy 转换为 xarray / zarr

    我有一个 37 GB 的 npy 文件 我想将其转换为 Zarr 存储 以便可以包含坐标标签 理论上我有代码可以做到这一点 但我总是内存不足 我想在中间使用 Dask 来促进分块执行此操作 但我仍然耗尽内存 这些数据是人们股骨软骨的 厚度图
  • 查询依赖于 mongodb 中其他文档值的文档

    想象一下以下猫鼬模型 const UserSchema Schema id ObjectId more fields blockedIds type ObjectId ref User 获取与某个 id 的用户的 BlockedId 不匹配
  • Play!2.x 构建导致 sbt 失败并出现 NoClassDefFoundError

    我刚刚更新了 IDE 插件版本和库依赖项 现在无法构建我的项目 SBT 投掷java lang NoClassDefFoundError sbt TrackLevel执行时 我也跑不了 sbt clean因为它尝试加载项目并失败并出现相同的
  • 用动画隐藏 NSStackView 的视图项

    我在 macOS 上使用 swift 4 我想用动画隐藏堆栈视图项 我试过这个 class ViewController NSViewController IBOutlet weak var box NSBox IBOutlet weak
  • Prolog 编程 - 解决方案的途径

    我在大学学习序言并面临一些问题 我已经发现的只是解决问题的方法 然而 我更感兴趣的是思考的方式 即如何得到这样的解决方案 有人可以给我关于这个领域的建议吗 我将衷心感谢您的帮助 我举了一个我正在处理的例子 并且在 stackoverflow
  • 如何拒绝 Linq to SQL DataContext 中的所有更改?

    在 Linq to SQL 的 DataContext 上 我可以调用 SubmitChanges 来提交所有更改 我想要的是以某种方式拒绝数据上下文中的所有更改并回滚所有更改 最好不访问数据库 这可能吗 为什么不丢弃数据上下文并简单地用新
  • 在 Fabric js 中缩放时保持对象大小

    即使用户放大或缩小 是否有任何解决方案可以保持对象大小 我想实现像谷歌地图上的行为 因此 如果我有一个高度和宽度为 20 的对象 对象组 即使我放大它 默认情况下它仍然应该是 20 像素 现在我的行 为是 当用户放大或缩小图像时 图像会变大
  • 如何生成组合矩阵

    我有 5 个项目 每个项目的值为 1 或 1 我想生成一个由可能组合的行组成的矩阵 项目的顺序并不重要 组合的顺序也不重要 我知道我可以机械地完成此操作 但我认为必须有人知道生成此矩阵的快捷方式 如果这与其他问题类似 我深表歉意 但我找到的
  • 重现捕获迭代变量问题

    我正在重读 Nutshell 中的 c 5 0 中有关捕获迭代变量的部分 第 138 页 并且我尝试在 c 4 0 和 c 5 0 上重现以下代码 但直到现在才希望发现差异 using System class Test static vo
  • 通过 Dropbox Api V2 上传文件

    以前我使用的是Dropbox API V1在我的网络应用程序中上传文件到我的 Dropbox 帐户 请注意 该应用程序仅使用一个 Dropbox 帐户 我的 来上传文件 所以以前 我在 Dropbox 开发者控制台上创建了一个应用程序 从开
  • Eclipse 强制处理程序使用 activeWhen 重新评估

    我看过这个问题Eclipse 强制处理程序重新评估以及保罗 韦伯斯特提供的答案 为什么这不能使用活动时间处理程序中的元素 仅当我更改以下plug in xml以使用启用时间元素 一旦运行命令 我的特定命令就不应再启用
  • Laravel 按 hasmany 关系排序

    我有两个雄辩的模特Threads and Comments 每个帖子都有很多评论 在列出线程时 我需要按created at降序对线程进行排序 所以 我需要使用对线程进行排序created at in Comments 显然点符号对于以这种
  • 如何将项目放入按特定键分组的分组数组中

    我对 JS 中的对象还很陌生 所以我需要一些帮助 我有以下数组 var persons fname Steven lname Jameson age 20 fname George lname Thrump age 40 fname Pet
  • 在 R 中,如何将具有单个逗号分隔字段的一条记录转换为多条记录?

    我在R工作 我有一个数据集 其中一些记录包含城市和县的列表 而不仅仅是一个城市或县 我正在寻找一种方法将该数据转换为 长 格式 其中会有多个记录 每个记录都有一个城市 县 reshape 假定多列 而不是一列中的逗号分隔列表 strspli
  • Winforms:平滑面板的圆角边缘

    我已关注本教程以创建圆形面板 本教程中的代码是用 vb 编写的 但我能够将其转换为 C 所以这是我的代码 public class SPanel Panel Pen pen float penWidth 2 0f int edge 20 C
  • Cordova / Phonegap 获取设备的电话号码(Android 和 iOS)

    是否可以使用 Phonegap Cordova 开发混合移动应用程序并访问 Android 和 iOS 设备的电话号码 iOS 您可以使用 CoreTelephony 框架检索电话号码 您需要添加以下权利 com apple coretel
  • 转置查询输出

    我有一个正常的选择查询 其结果如下输出 select cid x1 x2 x3 x4 fy from temp table cid x1 x2 x3 x4 fy 6657 100 0 0 200 2014 6658 300 0 0 400