SQL - Impala - 如何将一个分类列展开为多个?
SQL - Impala - How to unfold one categorical column into many?
我有以下 table :
user category number
1 A 8
1 B 6
2 A 1
2 C 9
3 B 5
我想"unfold"或"dummify"分类栏,用"number"栏填入:
user cat_A cat_B cat_C
1 8 6 0
2 1 0 9
3 0 5 0
是否可以在 SQL (Impala) 中实现?
我找到了这个问题How to create dummy variable columns for thousands of categories in Google BigQuery?
但是它看起来有点复杂,我宁愿在 Pandas 中进行。
知道我有 10 个类别(A、B、C、D 等),是否有更简单的解决方案?
您可以尝试使用条件聚合函数
SELECT user,
SUM(CASE WHEN category = 'A' THEN number ELSE 0 END) cat_A,
SUM(CASE WHEN category = 'B' THEN number ELSE 0 END) cat_B,
SUM(CASE WHEN category = 'C' THEN number ELSE 0 END) cat_C
FROM T
GROUP BY user
我有以下 table :
user category number
1 A 8
1 B 6
2 A 1
2 C 9
3 B 5
我想"unfold"或"dummify"分类栏,用"number"栏填入:
user cat_A cat_B cat_C
1 8 6 0
2 1 0 9
3 0 5 0
是否可以在 SQL (Impala) 中实现?
我找到了这个问题How to create dummy variable columns for thousands of categories in Google BigQuery?
但是它看起来有点复杂,我宁愿在 Pandas 中进行。
知道我有 10 个类别(A、B、C、D 等),是否有更简单的解决方案?
您可以尝试使用条件聚合函数
SELECT user,
SUM(CASE WHEN category = 'A' THEN number ELSE 0 END) cat_A,
SUM(CASE WHEN category = 'B' THEN number ELSE 0 END) cat_B,
SUM(CASE WHEN category = 'C' THEN number ELSE 0 END) cat_C
FROM T
GROUP BY user