Bigquery / Standard SQL - Dummifying数组

时间:2018-04-04 02:19:55

标签: arrays google-bigquery standard-sql

我正在尝试从数组创建虚拟列。

我的原始数据集类似于以下内容

|---------------------|------------------|
|      UserID         |     Categories   |
|---------------------|------------------|
|          1          |   1 44 56 423    |
|---------------------|------------------|
|          2          |    44 54 624     |
|---------------------|------------------|

我想要实现的是一个使所有类别变得模糊的表(例如,创建Categories_1,Categories_44,Categories_56等的新列),其中数组长度不固定。

输出应该看起来像这样 - 包含所有可能的列,具体取决于类别列

中的内容
|-----------|-----------------|-----------------|-----------------|
|  UserID   |   Categories_1  |  Categories_44  |  Categories_54  |
|-----------|-----------------|-----------------|-----------------|
|     1     |        1        |        1        |        0        |
|-----------|-----------------|-----------------|-----------------|
|     2     |        0        |        1        |        1        |
|-----------|-----------------|-----------------|-----------------|

从初始表 - 我已经设法用SPLIT函数分割类别

 SELECT SPLIT(Categories, " ") FROM `dataset.table`

它给了我一个数组,我不太清楚如何从这里开始。

使用CASE WHEN进行硬编码几乎是不可能的,因为用户数量扩展到数万,而类别数百个

0 个答案:

没有答案