问题如下:
现有一个表,表里面的数据结构如下:
| user | question_id | score | | name|
| S001 | 1 | 1.2 | | xiao1|
| S001 | 2 | 2.3 | | xiao1|
| S001 | 3 | 2.5 | | xiao1|
| S001 | 4 | 4.2 | | xiao1|
| S001 | 5 | 4.2 | | xiao1|
| S002 | 1 | 3.4 | | xiao2|
| S002 | 2 | 4.5 | | xiao2|
| S002 | 3 | 2.6 | | xiao2|
| S002 | 4 | 3.8 | | xiao2|
| S002 | 5 | 4.2 | | xiao2|
注意:表里面的name列的数据类型为字符串,score也是字符类型,question_id为整型。
先要把数据行列转换为如下格式:
+--------+-------+-------+-------+-------+-------+------+
| 用户名 | 问题1 | 问题2 | 问题3 | 问题4 | 问题5 | name
| S001 | 1.2 | 2.3 | 2.5 | 4.2 | 4.2 | xiao1 |
| S002 | 3.4 | 4.5 | 2.6 | 3.8 | 4.2 | xiao2 |
里面的数据格式包含有字母的字符串类型,例如name列就是。
现在如果要转为上面的格式,请问各位将如何处理,最后能够给出方法和例子。
关于mysql带有字符串行列转换问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- xxxxxxxxxxxxxxxxx 2009-11-20 10:48关注
select
用户名
,sum(问题1
),sum(问题2
),sum(问题3
),sum(问题4
),sum(问题5
),name from (select user as '用户名', (case question_id when 1 then score else null end) as '问题1', (case question_id when 2 then score else null end) as '问题2', (case question_id when 3 then score else null end) as '问题3', (case question_id when 4 then score else null end) as '问题4', (case question_id when 5 then score else null end) as '问题5', name from test ) as alia group by用户名
;本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器