我正在尝试从数组创建虚拟列。
我的原始数据集类似于以下内容
|---------------------|------------------|
| 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进行硬编码几乎是不可能的,因为用户数量扩展到数万,而类别数百个