0

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

我的原始数据集如下所示

|---------------------|------------------|
|      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 对其进行硬编码几乎是不可能的,因为用户数量多达数万,类别多达数百

4

0 回答 0