Как создать фиктивные переменные столбцы для тысяч категорий в Google BigQuery?

У меня есть простая таблица с 2 столбцами: UserID и Category, и каждый UserID может повторяться с несколькими категориями, например так:

UserID   Category
------   --------
1         A
1         B
2         C
3         A
3         C
3         B

Я хочу "dummify" этой таблицы: то есть, чтобы создать выходную таблицу, которая имеет уникальный столбец для каждой категории, состоящей из фиктивных переменных (0/1 в зависимости от того, принадлежит ли идентификатор пользователя этой конкретной категории):

UserID    A  B  C
------    -- -- --
1         1  1  0
2         0  0  1
3         1  1  1

Моя проблема в том, что у меня есть ТЫСЯЧИ категорий (не только 3, как в этом примере), и поэтому это не может быть эффективно выполнено с помощью оператора CASE WHEN.

Итак, мои вопросы:

1) Есть ли способ «подставить» столбец Категория в Google BigQuery без использования тысяч операторов CASE WHEN.

2) Это ситуация, когда функциональность UDF работает хорошо? Кажется, что это так, но я недостаточно знаком с UDF в BigQuery, чтобы решить эту проблему. Кто-нибудь сможет помочь?

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос