在 Snowflake 中逆透视多个列

2024-03-10

I have a table that looks as follows: enter image description here

I need to unpivot the Rating and the Comments as follows: enter image description here

在 Snowflake 中执行此操作的最佳方法是什么?

注意:评论栏中有一些单元格是NULL

添加详细信息:

create or replace table reviews(name varchar(50), acting_rating int, acting_comments text, comedy_rating int, comedy_comments text);

insert into reviews values
    ('abc', 4, NULL, 1, 'NO'),
    ('xyz', 3, 'some', 1, 'haha'),
    ('lmn', 1, 'what', 4, NULL);
    
    select * from reviews;
    


select name, skill, skill_rating, comments
    from reviews
    unpivot(skill_rating for skill in (acting_rating,  comedy_rating)) 
    unpivot(comments for skill_comments in (acting_comments,comedy_comments)) 

--Following where clause is added to filter the irrelevant comments due to multiple unpivots

where substr(skill,1,position('_',skill)-1) = substr(skill_comments,1,position('_',skill_comments)-1) 
     order by name;

将产生所需的结果,但对于具有 NULL 的数据,具有 NULL 的未透视行会从输出中丢失:

NAME    SKILL   SKILL_RATING    COMMENTS
abc COMEDY_RATING   1   NO
lmn ACTING_RATING   1   what
xyz ACTING_RATING   3   some
xyz COMEDY_RATING   1   haha

如果您需要解决的只是问题中指定的表 - 您可以使用一组手动完成UNION ALL:

select NAME
  , 'ACTING_RATING' as SKILL, ACTING_RATING as SKILL_RATING, ACTING_COMMENTS as SKILL_COMMENTS
from DATA
union all
select NAME
  , 'COMEDY_RATING', COMEDY_RATING, COMEDY_COMMENTS
from DATA
union all
select NAME
  , 'MUSICAL_PERFORMANCE_RATING', MUSICAL_PERFORMANCE_RATING, MUSICAL_PERFORMANCE_COMMENTS
from DATA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Snowflake 中逆透视多个列 的相关文章

  • 雪花:如果存在则删除列

    我没有找到任何简单的方法来 翻译 Snowflake 中的以下 T SQL 查询 ALTER TABLE table1 DROP COLUMN if exists col1 有任何想法吗 谢谢 随着介绍雪花脚本和分支构造 https doc
  • 如何用约束标记一大组“传递群”?

    在 NealB解决方案之后进行编辑 与以下解决方案相比 NealB的解决方案非常非常快任何另一个 https stackoverflow com q 18033115 answers and 提出了关于 添加约束以提高性能 的新问题 Nea
  • 时间序列数据的自连接

    我需要一些帮助来完成我认为应该是相当简单的自连接查询 只需要将两条记录中匹配的开始时间和结束时间合并为一条记录 假设我的表中有以下内容 Time Event 08 00 Start 09 00 Stop 10 30 Start 10 45
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • SQL 标准是否允许函数名和括号之间有空格

    检查一些 RDBMS 我发现类似的事情 SELECT COUNT a SUM b FROM TABLE 允许 注意聚合函数和括号之间的空格 谁能提供一个指向 SQL 标准本身定义的指针 任何版本都可以 编辑 以上在postgres中工作 m
  • postgresql 不同的不工作

    我使用以下代码从数据库获取值 但是当我编写这段代码时 测试看看问题出在哪里 我注意到查询没有从数据库中获取不同的值 这是查询 select distinct ca id as id acc name as accName pIsu name
  • meta_query,如何使用关系 OR 和 AND 进行搜索?

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

    所有基于 SQL 的 RDBMS 10 年前的版本 直接连接查询 没有提示指令 中的表顺序是否会对最佳性能和内存管理产生影响 听说最后一个join应该是最大的表 您的数据库的查询优化器如何处理这种情况 回答你的问题 是的 表的顺序在连接中有
  • 雪花存储过程变量绑定错误

    我正在尝试创建并执行一个简单的 Snowflake 存储过程 该过程接受输入参数并创建一个阶段 但是 当我尝试调用该过程时 它会抛出错误 参数值 无效 create or replace procedure raw test create
  • 可以有一个带有可变列的表吗?

    这可能是一个愚蠢的问题 但这里是 是否可以创建一个能够包含具有可变列数和自定义列名称的行的动态表 我浏览过 EAV 建模 但看起来很沉重 现实生活中的例子可能是这样的 假设我有一个客户登记册 但每个客户可能需要输入不同的信息 根据您要输入的
  • ALTER TABLE 语句与 FOREIGN KEY 约束冲突

    为什么要添加外键tblDomare表导致此错误 ALTER TABLE 语句与 FOREIGN KEY 约束 FK tblDomare PersN 5F7E2DAC 冲突 冲突发生在数据库 almu0004 表 dbo tblBana 列
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • 更改表添加列并在同一条件 IF 语句中更新新列

    我正在尝试添加列并在同一 if 语句中更新它 BEGIN TRAN IF NOT EXISTS SELECT 1 FROM sys columns WHERE Name N Code AND Object ID Object ID N Te
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • 如何使用 SQL Server 2008 执行多个 CASE WHEN 条件?

    我想做的是对同一列使用多个 CASE WHEN 条件 这是我的查询代码 SELECT Url p ArtNo p Description p Specification CASE WHEN 1 1 or 1 1 THEN 1 ELSE 0
  • MYSQL:如何在同一查询中联接两个表,两次引用同一个表

    我有两张桌子 我正在尝试将下面的示例两个表与表 1 引用表 2 两次结合起来 例如 如果我查看表 1 组 2 和成员 7 它应该查找表 2 中的 ID 并给出输出 Group Members Name Name 2 7 Blue Dog T
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了

随机推荐

  • Fabricjs 计数对象

    有没有办法使用 Fabric js 来计算画布中已有多少对象 function addImage imageName fabric Image fromURL image path imageName function image imag
  • 带有标题的剩余图像网格?

    作为对此的扩展question https stackoverflow com questions 10219634 image grid in restructuredtext sphinx 如何使用 Sphinx 和 reStructu
  • 当我关闭选项卡时 JS ServiceWorker 会发生什么

    当您关闭所有执行 Web Worker 的选项卡时 Worker 将关闭 同样的事情也会发生在 Service Worker 身上吗 与此相关的有两个方面 服务人员登记 这是浏览器中保存的记录 表示 对于此 URL 这些事件应由此脚本处理
  • PHP 从 SimpleXMLElement 数组获取值

    我有这个 1 gt object SimpleXMLElement 6 1 attributes gt array 14 name gt string 5 MySQL acknowledged gt string 1 1 comments
  • 如何在一个图中制作超过10个子图?

    我正在尝试制作 5x4 的子图网格 通过查看示例 在我看来最好的方法是 import matplotlib pyplot as plt plt figure plt subplot 221 其中子图 22 中的前两个数字表示它是一个 2x2
  • SLF4J + Logback 无法登录 WildFly

    我在 WildFly 8 中运行 Web 应用程序 但由于某种原因它没有记录 我使用 SLF4J 和 LOGBACK 日志文件是在部署时创建的 但它是空的 我也没有在 Wildfly 日志中看到我的日志语句 该类包含 package com
  • 如何使用 JodaTime 获取特定月份的最后一个日期?

    我需要第一次约会 如org joda time LocalDate 一个月和最后一个月 获得第一个是微不足道的 但获得最后一个似乎需要一些逻辑 因为月份的长度不同 二月的长度甚至多年来都不同 JodaTime 中是否已经内置了这种机制 或者
  • Synchronized 是否像 Lock.lock() 那样驻留并发线程?

    当我们打电话时lock lock 或尝试输入synchronized如果其他线程已经获取了该锁 那么我们的线程就会阻塞 现在我的问题是 当我们查看实施时lock lock 它将获取锁委托给 AQS AQS 实际上会停放当前线程 以便调度程序
  • 如何在 QML 中重用代码

    我有这段 QML 代码 Column spacing units gu 2 anchors fill parent centerIn parent Row spacing units gu 4 Row spacing units gu 4
  • 如何将变量从一个脚本传递到另一个脚本

    这是一个我无法正常工作的脚本 它的目的是检查一个复选框是否被选中 然后调用第二个 响应的例程 取决于我最初调用脚本时显示的 selectedindex sindex
  • C# 将字符串转换为 ASCII 字节

    我有一个字符串 LogoDataStr ABC0000 我想转换为 ASCII 字节 结果应该是 LogoDataBy 0 0x41 LogoDataBy 1 0x42 LogoDataBy 2 0x43 LogoDataBy 3 0x30
  • 不推荐使用delayWhen RxJs

    I got a Deprecated symbol used 我的 IDE 中出现使用警告delayWhen在我的应用程序中 My code private nextImg Observable
  • 从文件或标准输入读取

    我正在编写一个实用程序 它接受文件名或从标准输入读取 我想知道检查标准输入是否存在 数据正在通过管道传输到程序 以及如果存在则读取该数据的最强大 最快的方法 如果不存在 则处理将在文件名上进行给予 我尝试使用以下测试来确定大小stdin但我
  • OpenCV 数据矩阵代码查找器

    有人写过或听说过用 OpenCV 编写的数据矩阵代码解码器吗 我用的是自带的解码器ZXing http code google com p zxing 不过说实话 还挺糟糕的 它需要是一个完全清晰的图像 使用整个图像 并且不成一个角度 后者
  • 设置详细的正则表达式

    在尝试设置详细的正则表达式时 set up variables ankerwords beerdigt bestattet begraben beigesetzt combine the words five words before af
  • 是否可以让 Windows Azure 模拟器将浏览器打开到 127.0.0.1 以外的 URL

    简单的问题 但背后有很多意义 讨论 是否可以让 Windows Azure 模拟器将浏览器打开到 127 0 0 1 和端口 81 之外的 URL 按照步骤将 127 0 0 1 更改为所需 IP 计算模拟器设置 转到 Program Fi
  • 如何从 Ruby 字符串中删除特定字符?

    我有几个看起来像这样的字符串 String1 它们的长度都不同 如何在循环中删除所有这些字符串中的括号 使用如下操作String tr http ruby doc org core 2 0 0 String html method i tr
  • Scala:伴生对象与案例类的定义顺序

    在 Scala 2 9 1 中 我得到以下行为 class Foo case class X object X this compiles def bar object Y this compiles case class Y case c
  • python:几何布朗运动模拟[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions GBM 的
  • 在 Snowflake 中逆透视多个列

    I have a table that looks as follows I need to unpivot the Rating and the Comments as follows 在 Snowflake 中执行此操作的最佳方法是什么