在 BigQuery 中的大表中取消透视日期列

Posted

技术标签:

【中文标题】在 BigQuery 中的大表中取消透视日期列【英文标题】:Unpivoting dates columns in large table in BigQuery 【发布时间】:2021-12-26 03:41:03 【问题描述】:

我在 BigQuery 中有一个由 16 列和 30M 条记录组成的表,格式如下:

数据有 2 个日期列,我想将它们放入同一列日期中,以便可以直观地看到每天发生了多少事件。

基本上,每个项目和itemtype 都有一行用于包装日期,statusdate 的几行取决于发生的状态数和表中的所有列。

期望的输出:

【问题讨论】:

【参考方案1】:

我并不完全清楚你想要哪些日期的哪些行,但从概念上讲,我认为你所要求的最简单的方法是 UNION。

例如:

select itemtype, stages, <<date field (e.g. packagingdate)>> as dates
from mytable
where <<some condition (e.g. packagingdate is not null)>>
union all
select itemtype, stages, <<date field (e.g. signedoffdate)>> as dates
from mytable
where <<some condition (e.g. signedoffdate is not null)>>

【讨论】:

以上是关于在 BigQuery 中的大表中取消透视日期列的主要内容,如果未能解决你的问题,请参考以下文章

Power BI中有一列日期有多个是相同的,如何在表中的X轴上全部显示出来

取消透视 SQL 表中的所有列

将日期列取消透视到 Oracle 中复杂查询的单个列

对所有具有 null 的列进行取消透视

BigQuery 无法查询滞后的大表

从具有 NULL 列的大表中删除重复项,这也需要考虑