gpt4 book ai didi

MYSQL - 数据透视

转载 作者:行者123 更新时间:2023-11-29 11:03:44 26 4
gpt4 key购买 nike

我的应用程序中的数据当前以一系列列的形式出现,但我真的希望只有两列:“结果”和“任务”。请参阅随附的“电子表格”屏幕截图,了解我当前的数据如何输入,以及“数据库”屏幕截图,了解我想要实现的目标。

我目前可以使用大约 100 个 UNION ALL 语句来完成此操作,但我的查询变得非常慢。没有那么多 UNION ALL 是否有更好的方法来实现这一目标?

Spreadsheet数据库:

Database

谢谢!

最佳答案

UNION ALL 是一种很好的方法,但它确实需要为每个子查询扫描一次表。

一种替代方法是使用交叉连接。这需要更多编码,但可能会加快速度:

select tt.task,
(case when tt.task = 'Use Proper PPE' then use_proper_ppe
when tt.task = 'Damage Prevention' then damage_prevention
. . .
end) as result
from t cross join
(select 'Use Proper PPE' as task union all
select 'Damage Prevention' union all
. . .
) tt;

关于MYSQL - 数据透视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41770109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com