雪花不旋转

2024-03-04

我需要转置一个表,其中column1 是实体的名称,column2 到column366 是一年中包含美元金额的日期。表、select语句、输出结果都给定了 以下 -

问题 - 此语法要求我创建一个逗号分隔的列列表 - 基本上是 365 个日期 - 并在 select 语句的 IN 子句中使用该列表。

像这样 -

.....unpivot(现金日期在(“2020年1月1日”、“2020年1月2日”、“2020年1月3日”......“2020年12月31日”)) 按 2 排序

有更好的方法吗?就像正则表达式一样?我不想输入 365 个日期年-月-日格式化并获取腕管以解决我的麻烦

这是表格 - 第一行是列标题,第二行是分隔符。第 3、4、5 行是样本数据。

Name                  01-01-2020            01-02-2020          01-03-2020           12-31-2020
---------------------------------------------------------------------------------------------------
Entity1               10.00                 15.75               20.00                100.00
Entity2               11.00                 16.75               20.00                 10.00
Entity3              112.00                166.75               29.00                108.00

我可以使用下面的 select 语句转置它

从表1中选择* unpivot(现金(“1-1-2020”、“1-2-2020”、“1-3-2020”)中的日期)按 2 排序

得到如下输出 -

    Name-------------------dates-----------------------cash
    --------------------------------------------------------------
    Entity1                01-01-2020                   10.00
    Entity2                01-01-2020                   11.00
    Entity3                01-01-2020                  112.00

...............................
.............................
.........
and so on

有一种更简单的方法可以在不使用 PIVOT 的情况下执行此操作。 Snowflake 为您提供了一个函数,可以将整行表示为“对象”——键值对的集合。通过该表示,您可以展平每个元素并提取列名称(键 == 日期)和其中的值(值 == 现金)。这是一个可以做到这一点的查询:

with obj as (
   select OBJECT_CONSTRUCT(*) o from Table1
)
select o:NAME::varchar as name, 
       f.key::date as date, 
       f.value::float as cash  
from obj,
     lateral flatten (input => obj.o, mode => 'OBJECT') f
where f.key != 'NAME'
;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

雪花不旋转 的相关文章

随机推荐

  • Jquery / Javascript - 添加迄今为止的年份变量

    我有一个小麻烦 如果能得到一些帮助就太好了 我正在创建一个小表单 我想将当前日期格式化 dd mm yyyy 并从下拉框中添加年份变量以创建最终到期日期 唯一的麻烦是我不知道如何将开始日期解析为日期变量以完成计算 任何想法或帮助将不胜感激
  • 在 Delphi 中读取/解析非类型二进制文件的最佳方法

    我想知道解析非类型二进制文件的最佳方法是什么 例如 EBML 文件 http ebml sourceforge net EBML 基本上是一个二进制 xml 文件 它基本上可以存储任何内容 但目前它的主要用途是 MKV 视频文件 matro
  • 从数据库sqlite获取信息

    如何从数据库中获取信息 我想执行这一行 String nom db execSQL select name from person where id id 任何人都可以纠正我这一行以从表中获取人名吗 如果您的 id 是整数数据类型 请尝试此
  • 检测设备是否支持通话?

    下面的代码可以可靠地用来确定设备是否支持通话吗 我担心的是 如果苹果将 iphone 字符串更改为其他内容 假设他们决定拥有 iphone 3g iphone 4 等 UIDevice currentDevice model isEqual
  • Xamarin.forms 在 web 视图中显示 PDF 不起作用

    我从我的服务器下载 pdf 流 在我的应用程序中 我将 bytearray 作为 pdf 保存到本地文件夹中 但是当我在网络视图中打开它时 它只显示一个白色页面 我按照这个例子 https developer xamarin com rec
  • java.lang.illegalstateException数据库未打开android

    当我尝试插入数据库日志时 猫显示如下错误java lang illegalstateexception database not open android 但我已经使用打开数据库 db SQLiteDatabase openDatabase
  • Rails Admin 与 Active Admin:Rails Admin 生成工具[重复]

    这个问题在这里已经有答案了 可能的重复 Rails Admin 与 ActiveAdmin https stackoverflow com questions 6542075 rails admin vs activeadmin 我知道已经
  • Laravel:路由中间件和策略之间的区别

    使用 Laravel 开发应用程序我意识到可以做什么Policy完全可以用Middleware 假设我想阻止用户更新路线 如果他 她不是信息的所有者 我可以轻松地从路线中进行检查 并且可以从策略中执行相同的操作 所以我的问题是为什么我应该使
  • 我如何使用 Passport-local.js 存储其他表单字段

    我正在研究 node passport js 身份验证 我制作了一个简单的登录 注册应用程序 它工作正常 但是它只存储用户名和密码 如何通过具有工作登录护照身份验证的 Signup html 页面将其他表单字段 例如电话号码 电子邮件 爱好
  • 检查后台限制数据是否开启?

    我有一个在主线程上运行而不是在后台运行的服务 在服务中 我正在通过广播接收器检查网络连接 当我启用限制数据已启用在 设置 中 广播接收器可以很好地捕捉意图 但我的应用程序已禁用互联网连接 移动数据 尽管它在我的设备上 我见过这个问题 htt
  • 如何测试 Spark RDD

    我不确定我们是否可以在 Spark 中测试 RDD 我发现一篇文章说模拟 RDD 不是一个好主意 是否有其他方法或最佳实践来测试 RDD 感谢您提出这个悬而未决的问题 出于某种原因 当谈到 Spark 时 每个人都过于专注于分析 以至于忘记
  • 此信封实现是否正确使用 C++11 原子?

    我编写了一个简单的 信封 类 以确保我正确理解 C 11 原子语义 我有一个标头和一个有效负载 编写器清除标头 填充有效负载 然后用递增的整数填充标头 这个想法是 读取器然后可以读取标头 memcpy 出有效负载 再次读取标头 如果标头相同
  • B-Prolog 中带有累加器的嵌套循环

    B Prolog 具有逻辑循环 例如 我们可以这样计算 1 2 3 的和 test1 foreach A in 1 3 ac Sa 0 Sa 1 is Sa 0 A writeln sa Sa test1 test1 sa 6 yes 但是
  • Android 初始化 Visualizer 时出现错误代码 -3

    初始化时出现此错误Visualizer visualizer new Visualizer mediaPlayer getAudioSessionId lt 错误 无法初始化 Visualizer 引擎 错误 3 java lang Run
  • Twitter bootstrap:跨浏览器圆角和渐变?

    有什么方法可以添加 Twitter Bootstrap 跨浏览器对圆角和 CSS 渐变的支持 阅读 愚蠢的 IE 7 支持 我会使用 CSSPIE http css3pie com http css3pie com 这是一个 htc 文件
  • 有 XWalkView webviewclient 吗?

    我正在尝试使用XWalkView作为我的 Android 应用程序中的 webview 替代品 我注意到没有setWebViewClient方法上XWalkView目的 问题是我想检查页面何时完成 onPageFinished 以及资源加载
  • 在同一服务器上部署 ASP.net Ajax 1.0 和 3.5 Web 应用程序

    我们有一个生产服务器 其中运行 Ajax 1 0 的 ASP net 2 0 应用程序和相应的工具包 工具包版本 1 0 20229 我被要求使用 ASP net 3 5 移动另一个应用程序构建 该应用程序也利用了最新的 ASP NET A
  • 如何计算 NSArray 中的重复值?

    我的价值NSArray包括重复项 我找到了重复项 但现在我怎样才能找到没有 他们重复 您可以使用NSCountedSet http developer apple com library ios documentation Cocoa Re
  • pandas 过滤和比较日期

    我有一个 sql 文件 其中包含我读入 pandas 的数据 df pandas read sql Database count details con engine index col id parse dates newest avai
  • 雪花不旋转

    我需要转置一个表 其中column1 是实体的名称 column2 到column366 是一年中包含美元金额的日期 表 select语句 输出结果都给定了 以下 问题 此语法要求我创建一个逗号分隔的列列表 基本上是 365 个日期 并在