繁体   English   中英

我如何在 google BigQuery 上输入 pivot?

[英]how do I pivot this on google BigQuery?

这是我目前正在使用的数据。

X A
3个 2个
5个 2个
5个 4个
3个 4个
6个 7 RR
8个 7 RR
8个 9 RR
6个 9 RR

我正在尝试 pivot 表格,使其变为:

x1 x2 y1 y2 A
3个 5个 2个 4个
6个 8个 7 9 RR

我试过 AGG 和 PIVOT 函数,但似乎无法让它工作,这必须使用 onky Google BQ 来完成。 完整的数据集要大得多,所以我需要一个通用的解决方案。 任何帮助或建议将不胜感激。 谢谢!

以下应该是您的良好开端

select * from (
  select * from 
  (select *, row_number() over(partition by a) pos from (select distinct x, a from your_table)) 
  full outer join 
  (select *, row_number() over(partition by a) pos from (select distinct y, a from your_table)) 
  using (a, pos)
)
pivot (any_value(x) as x, any_value(y) as y for pos in (1,2))   

如果应用于您问题中的样本数据 - output 是

在此处输入图像描述

您可以动态构建该查询(因此您不需要显式指定唯一值的计数)并使用 EXECUTE IMMEDIATE 来运行它 - SO 上有很多此类技术的示例!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM