【发布时间】:2023-03-10 21:19:01
【问题描述】:
我正在处理一个数据集:“data_1”,通过将多列合并到这一列及其值来创建一个新列“类别”。
例如data_1:
user_id | family | friend | roommate | college
===============================================
1002345 | 1 | 0 | 1 | 0
-----------------------------------------------
1002346 | 0 | 1 | 0 | 1
-----------------------------------------------
... | ... | ... | ... | ...
------------------------------------------------
我在 Mysql 中尝试过“Case When”或“Unpivot”功能,但它们不起作用。
select
user_id,
category
from data_1
unpivot (category for col_name in (
data_1.family,
data_1.friend,
data_1.roommate,
data_1.college)
)
预期输出表:
user_id | Category | Value
============================
1002345 | Family | 1
----------------------------
1002345 | Friend | 0
----------------------------
1002345 | Roommate | 1
----------------------------
1002345 | College | 0
----------------------------
1002346 | Family | 0
----------------------------
1002346 | Friend | 1
----------------------------
1002346 | Roommate | 0
----------------------------
1002346 | College | 1
----------------------------
... | ... | ...
----------------------------
谢谢!
【问题讨论】:
-
尝试四个 UNIONed 查询。
-
好提示。谢谢! @PaulSpiegel
标签: mysql merge new-operator