sql - 如何在 BigQuery 中取消透视?

标签 sql google-bigquery transpose unpivot

不知道要调用什么函数,但转置是我能想到的最接近的东西。

我在 BigQuery 中有一个配置如下的表:
enter image description here

但我想查询一个配置如下的表:

enter image description here

创建此表的 SQL 代码是什么样的?

谢谢!

最佳答案

2021 年更新:
一个新的UNPIVOT运算符已被引入 BigQuery。
在使用 UNPIVOT 将 Q1、Q2、Q3、Q4 旋转到销售和季度列之前:


产品
第一季度
第二季度
第三季度
第四季度


羽衣甘蓝
51
23
45
3

苹果
77
0
25
2


在使用 UNPIVOT 将 Q1、Q2、Q3、Q4 旋转到销售和季度列之后:


产品
销售量
四分之一


羽衣甘蓝
51
第一季度

羽衣甘蓝
23
第二季度

羽衣甘蓝
45
第三季度

羽衣甘蓝
3
第四季度

苹果
77
第一季度

苹果
0
第二季度

苹果
25
第三季度

苹果
2
第四季度


询问:

WITH Produce AS (
  SELECT 'Kale' as product, 51 as Q1, 23 as Q2, 45 as Q3, 3 as Q4 UNION ALL
  SELECT 'Apple', 77, 0, 25, 2
)
SELECT * FROM Produce
UNPIVOT(sales FOR quarter IN (Q1, Q2, Q3, Q4))

关于sql - 如何在 BigQuery 中取消透视?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832170/

相关文章:

sql - SELECT FOR UPDATE 锁定查询

sql - Postgresql - 具有相关子查询的条件 SUM

sql - 查询(或算法?)查找从两个不同位置到一个共享位置的最便宜的重叠航类

sql - SQL Server 2005 有趣且具有挑战性的自连接问题

MySQL - 合并具有相同键的行的列值

google-analytics - google 如何在 Bigquery/Google-Analytics 中设置 fullVisitorId/Client ID?

google-bigquery - 是否可以在 BigQuery Web 控制台中设置默认区域?

基于 R 中第一列中的重复行进行 reshape

javascript - 具有 'colspan' 和 'rowspan' 属性的转置表

r - 将没有 "timevar"的数据帧从长格式转换为宽格式