具有多个值列的数据透视表/交叉表

2023-11-23

我有一个产生以下结果集的视图:

CREATE TABLE foo
AS
  SELECT client_id, asset_type, current_value, future_value
  FROM ( VALUES
    ( 1, 0, 10 , 20 ),
    ( 1, 1, 5  , 10 ),
    ( 1, 2, 7  , 15 ),
    ( 2, 1, 0  , 2 ),
    ( 2, 2, 150, 300 )
  ) AS t(client_id, asset_type, current_value, future_value);

我需要把它改成这样:

client_id    a0_cur_val   a0_fut_val  a1_cur_val  a1_fut_val  ...
1            10           20          5           10          
2            NULL         NULL        0           2           

如果我只使用current_value列,使用交叉表。我该如何使用current_value and future_value在目标结果集中生成新列?如果我只是添加future_value列到crosstab(text)查询时它抱怨“源数据 SQL 语句无效”。

我正在使用 PostgreSQL 9.3.6。


一种方法是使用复合类型:

CREATE TYPE i2 AS (a int, b int);

或者,为了临时使用(在会话期间注册类型):

CREATE TEMP TABLE i2 (a int, b int);

然后按照您所知运行交叉表并分解复合类型:

SELECT client_id
     , (a0).a AS a0_cur_val, (a0).b AS a0_fut_val
     , (a1).a AS a1_cur_val, (a1).b AS a1_fut_val
     , (a2).a AS a2_cur_val, (a2).b AS a2_fut_val
FROM   crosstab(
       'SELECT client_id, asset_type, (current_value, future_value)::i2
        FROM   foo
        ORDER  BY 1,2'

      ,'SELECT * FROM generate_series(0,2)'
   ) AS ct (client_id int, a0 i2, a1 i2, a2 i2);

所有括号都是required!

基础知识crosstab():

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

具有多个值列的数据透视表/交叉表 的相关文章

  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • PostgreSQL 中的 Long 数据类型相当于什么?

    我想知道相当于什么LongPostgreSQL 中的数据类型 根据the docs http www postgresql org docs 7 4 interactive datatype html DATATYPE INT看起来像big
  • Linq To SQL - 拥有和分组依据

    我下面这个查询工作正常 不过我想使用 Linq 来实现它 select u ID u NAME from Task t join BuildingUser bu ON bu ID BUILDING t ID BUILDING join Us
  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 根据日期顺序排名

    我的数据如下 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
  • 由于键更改而尝试插入时外键约束失败

    我有一个 Content 对象 它引用多对多关系中的一组 Tag 对象 作为持久化新内容对象的一部分 我在 PostgreSQL 中查看标签是否已存在 如果存在 则将对其的引用添加到内容对象并尝试保存内容对象 我遇到的问题是 当我这样做时
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 为 Rails 上的 postgresql 创建用户

    我选择 postgresql 作为我的 Rails 数据库 但当我尝试运行 rake db create all 时 我遇到了一个明显常见的错误 即 致命 角色 app 不存在 我找到了两种解决方案 但我不确定哪一种是正确的 有一个网站说
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 转义 to_tsquery 中的特殊字符

    如何转义传递给的字符串中的特殊字符to tsquery 例如 这种查询 select to tsquery AT T 生产 NOTICE text search query contains only stop words or doesn
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • SQL 更新 - 更新选定的行

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

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • SSIS 错误:源的外部列与数据源列不同步;如何删除外部列?

    查询应输出特定的项目列表 以及商店信息和经理信息等信息 使用光标翻阅各种不同管理级别的列表 选择相关信息 然后通过电子邮件向该人员发送查询为其地区 地区 商店返回的内容 我的问题是旅程中的 SSIS 阶段 尽管代码的行为就像它在运行一样 但
  • 如何在 VBA for Excel 中为动态选择的单元格定义 ENTER 按键事件

    I got a dynamically chosen Cell that will be filled with some information that im going to put and when I put the inform
  • 创建自定义简单光标适配器

    我想创建一个非常简单的光标自定义光标适配器 以方便在单击时更改行项目的颜色 使用以下代码 private static int save 1 public void onListItemClick ListView parent View
  • 创建多个轻量级 Google Cloud Functions 的最佳实践?

    Google Cloud Functions 的工作方式似乎是 你的模块进入一个functions目录 that functions目录然后包含一个package json文件包含所有模块之间的共享依赖项 每个模块可以包含许多导出函数 go
  • HTTP 错误 404.4 - 未找到您正在查找的资源没有与其关联的处理程序

    我在 IIS 中托管了一个网站 但每当我浏览该网站时 我都会收到 404 4 我该如何解决这个问题 我已经提到了几篇文章 他们都说问题与静态文件有关 但它已经被映射了 我还能做什么 这是我的 iis 7 0 中处理程序映射的附图 有任何想法
  • 使用 JFileChooser 将文件类型附加到 Java 中的文件

    我正在尝试使用 JFileChooser 保存图像 我只希望用户能够将图像保存为 jpg 格式 但是 如果他们不输入 jpg 则不会将其保存为图像 是否可以以某种方式将 jpg 附加到文件末尾 File file chooser getSe
  • 如何在 Bootstrap 中仅在特定屏幕尺寸上显示某些内容?

    我希望能够仅在 html 中显示图像md屏幕 我正在考虑隐藏图像sm向下 并躲避lg and up 我怎样才能做到这一点 在 Bootstrap v4 中 您可以使用这些类d none d md block d lg none使内容仅在媒体
  • UML泛化与实现

    我对 UML 还很陌生 所以我对泛化和实现有一些疑问 我正在对电子微控制器的行为进行建模 并且需要从 UML 描述生成 C 代码 据我所知 一个class realizes接口 这意味着它可以提供接口的实现 A概括两个类之间可能存在关系 在
  • Miller Rabin 素性测试准确性

    我知道米勒 拉宾素性检验是概率性的 不过我想用它来编程任务没有任何出错的余地 如果输入数字是 64 位整数 即 long long in C Miller Rabin is indeed probabilistic but you can
  • Java 中数组的排列(重复)

    网站上有一些类似的问题 这些问题对我有一些帮助 但我无法完全确定这个问题 所以我希望这不是重复的 这是一项家庭作业 其中您有一组字符 A B C 并且必须使用递归来获取所有排列 有重复 我的代码是这样做的 char c A B C publ
  • 使用 Karma (Jasmine) 测试 AngularJS 工厂

    我正在努力使用 Karma Jasmine 测试 AngularJS 工厂 我无法将我的工厂注入OfficerValidationService多变的 我究竟做错了什么 注意 文件已正确加载 Factory use strict angul
  • 如何在 Flutter 中监控剪贴板?

    我正在寻找一种在 Flutter 中监视剪贴板的方法 我能找到的与 Flutter 上的剪贴板交互相关的所有内容是 剪贴板类 有谁知道如何监控系统剪贴板中的新项目 最好使用插件 可能有点晚了 但仍然如此 不需要插件或库 解决方案可能非常简单
  • .Select、.Activesheet、.Activecell 等...

    对于这个问题 我参考下面的帖子来澄清一下 为什么我的条件格式在用VBA添加时会偏移 在我这些天看到的很多很多帖子中 OP 被默默地允许使用 Activate Select Offset 等 而它们却为潜在错误 通常是由最终用户引起的 敞开了
  • 计算平均置信区间而不存储所有数据点

    对于大型n 请参阅下文了解如何确定足够大的值 根据中心极限定理 可以安全地将样本均值的分布视为正态 高斯 但我想要一个程序 为任何给出一个置信区间n 实现这一点的方法是使用 Student T 分布n 1自由程度 所以问题是 给定您一次收集
  • Ebean多对多查询

    我有两个类 用户和汽车 两者都有 ManyToMany 相互映射 User Entity public class User extends Model private int year ManyToMany cascade Cascade
  • 方法中变量的最大数量

    我在这里闲着 所以我有这个好奇心 有人可以告诉我 C 中每个方法的最大变量数是多少 我只是尝试编译生成的程序源 其中包含 26 26 26 26 个局部变量 而不是方法参数 它们被称为 aaaa aaab aaac等等 我遇到了这个限制 错
  • Hibernate 搜索与 spring-data-solr 、 spring-data-elasticsearch

    我有一个 Spring Boot Spring Data JPA hibernate Web 应用程序 想要引入文本搜索功能 我了解以下内容 hibernate search 或 spring data 都可以集成到我的应用程序中 Hibe
  • 如何从嵌套类访问超类方法?

    我希望这段代码可以解释这个问题 class Foo void a stuff class Bar extends Foo void a throw new Exception This is not allowed for Bar clas
  • 如何使用 div 和 css 模拟表格?

    像这样的表 table tr td td td td td td tr tr td td td td td td tr table 如何使用 div 和 css display table 规则创建一个 尝试这个 CSS table dis
  • 具有多个值列的数据透视表/交叉表

    我有一个产生以下结果集的视图 CREATE TABLE foo AS SELECT client id asset type current value future value FROM VALUES 1 0 10 20 1 1 5 10