【发布时间】:2021-09-12 11:37:38
【问题描述】:
我遇到了扁平化数据的特定场景,需要帮助。我需要将输出作为列值不固定的展平数据。因此,我想将输出限制为固定的列集。
给定表'test_table'
| ID | Name | Property |
|---|---|---|
| 1 | C1 | xxx |
| 2 | C2 | xyz |
| 2 | C3 | zz |
场景是,列名称可以有任何编号。对应于 ID 的值。我需要以这样一种方式展平数据,即每个 ID 字段只有一行。由于名称字段因每个 ID 而异,我想将其展平以修复 3 列,如 Co1、Co2、Co3。输出应该是这样的
| ID | Co1 | Co1_Property | Co2 | Co2_Property | Co3 | Co3_Property |
|---|---|---|---|---|---|---|
| 1 | C1 | xxx | null | null | ||
| 2 | C2 | xyz | C3 | zz |
想不出使用 Pivot 或聚合的解决方案。任何帮助将不胜感激。
【问题讨论】:
-
I want to flatten it for fix 3 columns- 不清楚!如果您有超过 3 个(比如说 5 个)特定 ID 的条目怎么办?你想输出 5 列吗? -
@MikhailBerlyant 根据要求,字段名称可以达到任何值,所以我想限制它以修复否。所有 ID 的列数。如果说任何 ID 有 5 个值,那么输出中将忽略 2/5。
标签: sql view google-bigquery flatten