AWS Redshift 数据透视表所有维度

2023-12-13

我正在遵循在 redshift 中旋转大表的方法:

使用 Amazon RedShift / PostgreSQL 透视表

然而,我有大量的组需要旋转,即m1, m2, ... 如何循环遍历所有不同的值并对每个值应用相同的逻辑并为结果列名称指定别名?


如果您希望能够旋转到任意数量的组,您可以将这些组组合成一个 JSON 字符串,然后使用以下命令提取您感兴趣的组:Redshift JSON 函数。您可能不想对非常大的数据集执行此操作。

这是基于示例数据的基本思想上面链接的问题:

select DimensionA, DimensionB,
    json_extract_path_text(json_pivot, 'm1') m1,
    json_extract_path_text(json_pivot, 'm2') m2
from (
    select DimensionA, DimensionB,
        '{' || listagg(quote_ident(MetricName) || ':' || quote_ident(MetricValue), ',')
               within group (order by MetricName) || '}' as json_pivot
    from to_pivot
    group by DimensionA, DimensionB
)

实际上,您不会希望这样运行它。内部选择是您用来生成“透视”表的内容,外部选择显示如何引用特定的组值。

这不考虑相同暗淡组合的重复组记录,如下所示:

DimensionA  DimensionB  MetricName  MetricValue
----------  ----------  ----------  -----------
dimA1       dimB2       m1          v13
dimA1       dimB2       m1          v23

如果数据中有这种可能性,那么您将必须弄清楚如何处理它。我不确定它的实施效果如何。我的猜测是第一个出现的情况将被提取。

这可能可以通过组合来完成LISTAGG and REGEXP_SUBSTR以及使用两个自定义分隔符。

Using varchar(max)为了JSON 列类型将提供 65535 字节,这应该可以容纳几千个类别。

解释这里略有不同.

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

AWS Redshift 数据透视表所有维度 的相关文章

  • 如何将 ROW_NUMBER() 分配给列?

    看完之后这个问题 https stackoverflow com questions 1293390 sql to output line number in results of a query 我还有一个类似的问题 有没有一种简单的方法
  • 通过 phpMyAdmin 在 MySQL 中创建 id 字段时是否必须指定整数长度?

    我看到有人在教程中没有设置长度 而是专门为了统计用户总数而设置为自动递增 我一直习惯于总是指定长度 因为我认为这是强制性的 但我想问我是否可以将其留空 除非它特别是始终设置长度的日期或密码等 如果我不确定的话 我曾经将其设置为11位或更多
  • SQL - 选择具有最大值的所有行

    我有这个 SQL 查询 SELECT id COUNT AS price FROM SELECT FROM rt WHERE somecondition AS st JOIN tt ON st id tt id GROUP BY id 现在
  • 检查 MySQL 和 PHP 中是否都存在 ids 列表

    最有效的方法是什么MySQL and PHP检查 id 列表是否全部存在 我希望函数返回结果是true if allid 存在 否则false 我刚在想 ids array 2233 5545 9478 5343 3545 do all g
  • 如何持续交付基于SQL的应用程序?

    我希望将持续交付概念应用到我们正在构建的 Web 应用程序中 并想知道是否有任何解决方案可以保护数据库免受意外错误提交的影响 例如 删除整个表而不是单个记录的错误 根据持续交付原则 如何限制这个问题的影响 即应用程序逐渐部署在基础设施的各个
  • SQL IN 子句比单个查询慢

    我正在使用 Hibernate 的 JPA 实现和 MySQL 5 0 67 MySQL 配置为使用 InnoDB 在执行 JPA 查询 转换为 SQL 时 我发现使用IN子句比执行单个查询慢 例子 SELECT p FROM Person
  • 如何解决此错误:Py4JJavaError:调用 o70.showString 时出错?

    目前我正在开发 PySpark 和 DataFrame 我创建了一个数据框 from pyspark sql import import pandas as pd spark SparkSession builder appName Dat
  • sql查询中where子句中的CASE语句

    我正在尝试在我正在处理的查询的 where 子句中编写一个 case 语句 我正在水晶报告中导入代码 我基本上是想说明变量 类型 是否设置为 创建 以便在where子句中为该日期范围运行 否则为不同的日期范围运行 它一直给我一个错误 我似乎
  • SSRS报告不显示数据

    我刚刚创建了 SQL Server 2005 SSRS 报告 数据未显示在预览窗格中 数据集是根据字符串参数从存储过程正确填充的 我可以在数据窗格中执行它 在预览窗格中运行报表时 会显示正确的行数 但单元格的内容不包含任何数据 源数据集基于
  • 执行计划中是否考虑了功能?

    当查询在 SELECT 或 WHERE 子句中包含 PL SQL 函数 用户定义函数 时 如何生成执行计划 它是否也计算这些函数的成本并将其显示在执行计划中 或者这些函数只是被忽略 在此先感谢您的帮助 用户生成的函数在 SELECT 或 W
  • 添加日期时间和时间

    服务器 SQL Server 2012 SP1 开发者版 Code declare datetime datetime 1900 01 01 00 00 00 000 declare time time 11 11 11 select da
  • 带可选参数的 SQL 更新命令?

    我将大约 500 000 个对象插入数据库 其中许多对象是相同的 在数据库中具有相同的主键表示 但其他字段可能不同 因此我使用方法 更新 如果没有行受影响 插入 问题是 有时一个对象的某些字段设置为 null 从文件中无法读取 并且已经在数
  • 在数据库中有效存储商品位置(用于订购)

    设想 有一个用户拥有的电影数据库 电影显示在一个名为 我的电影 的页面上 电影可以按照用户想要的顺序显示 例如 位置 1 为 搏击俱乐部 位置 3 为 Drive 依此类推 显而易见的解决方案是存储每个项目的位置 例如 电影 ID 用户 I
  • 有向图 SQL

    我有以下数据集 它表示有向图中的节点 CREATE TABLE nodes NODE FROM VARCHAR2 10 NODE TO VARCHAR2 10 INSERT INTO nodes VALUES GT TG INSERT IN
  • PDO 和 Microsoft SQL:必须声明表变量“@P1”

    我正在尝试使用 PDO 中的绑定从 Microsoft SQL 数据库中选择一些条目 我正在使用的代码看起来与我在文档中找到的代码类似 但是 当我运行它时 我收到以下警告 警告 PDOStatement execute pdostateme
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • LINQ-to-SQL 是否支持组合查询?

    作为一名不懂 C 的程序员 我对 LINQ 查询的求值语义很好奇 如下所示 var people from p in Person where p age lt 18 select p var otherPeople from p in p
  • 使用聚合函数时减少 Athena 扫描的数据量

    以下查询扫描 100 MB 的数据 select from table where column1 val and partition id 20190309 然而 下面的查询扫描了 15 GB 的数据 有超过 90 个分区 select
  • 左连接 SQL 求和

    我有两张桌子想要加入 比如说表 a 和表 b 表 b 有许多行指向表 a 表 b 包含价格 实际上是一个购物篮 所以我想要的是表a中的所有记录和表b中的价格之和 我努力了 select a sum b ach sell from booki
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N

随机推荐

  • 有人能解释一下这个说法吗? lpadded = win // 2 * [-1] + l + win // 2 * [-1]

    假设 l 是一个整数列表 而 win 是一个整数 则以下代码生成一个列表 lpadded lpadded win 2 1 l win 2 1 在 lpadded 1 中 填充到列表的开头和结尾 但我完全不知道该代码如何生成此列表 这里的 1
  • TextInputLayout :如何给予 padding 或 margin 来提示?

    我必须使用TextInputLayout我的项目中的设计支持库 我想在之间留出空间hint and EditText in TextInputLayout 我设置边距和填充TextInputLayout甚至在里面EditText但两者都不起
  • 在哪里可以找到 size_t 的定义?

    我看到用这种类型定义的变量 但我不知道它来自哪里 也不知道它的目的是什么 为什么不使用 int 或 unsigned int 其他 类似 类型呢 Void t 等 From 维基百科 The stdlib h and stddef h头文件
  • Hibernate:使用增量和 Oracle 模式的 ID 生成器

    我正在使用 Hiberbnate 3 1 3 我有如下映射 当我尝试将记录插入 TEST TABLE 时 出现异常 线程 主 org hibernate exception SQLGrammarException 中的异常 无法获取增量生成
  • 在 Python 中使用 Selenium 获取某个 div 的链接

    我有以下 HTML 页面 我想获取特定 div 内的所有链接 这是我的 HTML 代码 div class rec view a href www xyz com firstlink html img src imga png a a hr
  • 访问 cvCreateMatND 的元素

    我是 OpenCV 新手 我正在尝试创建一个 n 维数组并使用 CvMatND 访问每个元素 我可以通过 data i step j nchannels 0 访问二维矩阵 如何访问由 int size 12 12 12 CvMatND ma
  • Spring Data REST 不包括资源中的实体链接

    由 Oliver Gierke 的解决方案解决 看起来这是 Spring 4 2 0 中的一个已知错误 升级到 4 2 1 已经提供了预期的功能 原始问题 我正在努力将我的开发团队转移到 Spring WebMVC Data REST Da
  • 通过 Process Explorer 中的“结束进程”防止用户进程被终止

    我注意到 GoogleToolbarNotifier exe 无法从 Process Explorer 中杀死 它返回 访问被拒绝 它以用户身份运行 以 正常 优先级运行 并且从程序文件运行 他们是如何做到的呢 我认为可能有一种方法可以修改
  • 我如何调用动态变量名?

    好的 所以我正在尝试制作一个程序来 理解 用户输入并执行他们告诉它的操作 人们通常只使用特定的命令 例如 打开此文件 并且只有当用户完全键入该命令时它才有效 我试图给我的用户一点回旋余地 这样他们就可以输入他们想要发生的事情 然后计算机就会
  • Azure DevOps 解决拉取请求冲突

    所以 我对 Azure 有一个非常奇怪的问题 在拉取请求中 它检测到一些冲突 但没有显示它们在哪里 以及我需要更改什么 在此之前 Visual Studio 从以下位置收集了大量垃圾 vs文件夹 并且显示与之冲突 因此 我删除了分支中的这些
  • 无法理解 Linux 内核模块中 read_proc 的工作

    我正在查看内核模块示例page 程序中使用的read proc如下 int fortune read char page char start off t off int count int eof void data int len if
  • “代码已覆盖”与“代码已测试”?

    将我当前的代码项目转换为 TDD 我注意到了一些事情 class Foo public event EventHandler Test public void SomeFunction snip Test this new EventArg
  • Javascript:将数组转换为对象

    这是转换的最简单方法 src websrv1 dst websrv2 dstport 80 to this src websrv1 dst websrv2 dstport 80 为了将其传递给 AJAX 数据 我在用着视觉搜索它返回一个 F
  • LocalReport方法渲染的线程文化

    我正在 asp net 应用程序中使用 localreport 对象 该报告由一组对象提供 因此 在呈现报表时 会调用该类的一些属性 Class ClassForReport string Date get return aDate Tos
  • 将 css 类添加到 wtform 中的字段

    我正在使用 wtforms 和 Flask 生成动态表单 我想向我生成的字段添加一些自定义 css 类 但到目前为止我还无法这样做 使用我找到的答案here 我尝试使用自定义小部件来添加此功能 它的实现方式几乎与该问题的答案完全相同 cla
  • VueJS 上传带有附加数据的图像

    我正在尝试将图像上传到服务器 同时使用以下方法传递一些附加数据 在同一发布请求中 VueJS 2 CLI 3 axios multer sharp 我在后端有 NodeJS 和 MongoDB 前端
  • Facebook api 在 openActiveSession 期间挂在“正在打开”状态

    我第一次可以正常登录 我有一个选项 用户可以在 Android 应用程序中禁用 facebook 选择此选项后 Facebook 状态将变为 关闭 当我再次使用该选项时 重新登录 API 会在回调函数中的 OPENING 处挂起 根据我发现
  • 使用 VideoWriter 从 OpenCV 打开 GStreamer 管道

    我正在使用 OpenCV 捕获和处理视频帧 我想将它们写入 h265 视频文件 我正在努力从 OpenCV 获得合适的 Gstreamer 管道 Gstreamer 本身工作得很好 特别是 我能够运行此命令 它可以非常快速地对视频进行编码
  • matplotlib:重绘前清除散点数据

    我在 imshow 地图 上有一个散点图 我想要一个点击事件来添加一个新的散点 这是我通过 scater newx newy 完成的 问题是 然后我想添加使用选择事件删除点的功能 由于没有删除 pickX PickY 函数 我必须获取选定的
  • AWS Redshift 数据透视表所有维度

    我正在遵循在 redshift 中旋转大表的方法 使用 Amazon RedShift PostgreSQL 透视表 然而 我有大量的组需要旋转 即m1 m2 如何循环遍历所有不同的值并对每个值应用相同的逻辑并为结果列名称指定别名 如果您希