我必须根据数据搜索列名。
我的表
id | serv1 | serv2 | serv3 | serv4 | serv5 | serv6 |
-------------------------------------------------------
001| 2 | 3 | 5 | 1 | 4 | 6 |
-------------------------------------------------------
002| 2 | 1 | 5 | 3 | 4 | 6 |
-------------------------------------------------------
003| 6 | 2 | 5 | 3 | 4 | 1 |
我想要数据值 1 的字段名称。
我的输出
--------------
001| serv4
--------------
002| serv2
--------------
003| serv6
--------------
答案 0 :(得分:2)
案例陈述可以:
SELECT id,
CASE WHEN serv1 = 1
THEN 'serv1'
WHEN serv2 = 1
THEN 'serv2'
WHEN serv3 = 1
THEN 'serv3'
WHEN serv4 = 1
THEN 'serv4'
WHEN serv5 = 1
THEN 'serv5'
WHEN serv6 = 1
THEN 'serv6'
END
FROM mytable;
答案 1 :(得分:1)
将行转换为json,并使用函数json_each_text进行转置。然后过滤值等于df['column'].sort_values(ascending=False)
的位置,注意json_each_text将值转换为文本。
'1'