我有一个包含 2 列的简单表:用户 ID 和类别,每个用户 ID 可以重复几个类别,如下所示:
UserID Category
------ --------
1 A
1 B
2 C
3 A
3 C
3 B
我想“虚拟化”这个表:即创建一个输出表,其中每个类别都有一个由虚拟变量组成的唯一列(0/1,取决于用户 ID 是否属于该特定类别):
UserID A B C
------ -- -- --
1 1 1 0
2 0 0 1
3 1 1 1
我的问题是我有数千个类别(不仅仅是本例中的 3 个),因此使用 CASE WHEN 语句无法有效地完成此操作。
所以我的问题是:
1) 有没有一种方法可以在不使用数千个 CASE WHEN 语句的情况下“虚拟化”Google BigQuery 中的 Category 列。
2) 这是 UDF 功能运行良好的情况吗?似乎是这样,但我对 BigQuery 中的 UDF 不够熟悉,无法解决这个问题。有人可以帮忙吗?
谢谢。