一、MySQL的行转列
案例一:
数据准备:
1、创建salgrade学生成绩表:
create table salgrade(
name varchar(20) comment '学生姓名',
subject varchar(20) comment '学科',
score float comment '成绩'
) engine=InnoDB charset = UTF8;
2、插入数据进sagrade表:
INSERT INTO salgrade values('nick', '语文', 80);
INSERT INTO salgrade values('nick', '数学', 70);
INSERT INTO salgrade values('nick', '英语', 90);
INSERT INTO salgrade values('john', '语文', 60);
INSERT INTO salgrade values('john', '数学', 68);
INSERT INTO salgrade values('john', '英语', 75);
INSERT INTO salgrade values('sail', '语文', 85);
INSERT INTO salgrade values('sail', '数学', 70);
INSERT INTO salgrade values('sail', '英语', 100);
- 查询出来的数据:

需求一:行转列,转换为姓名、学科、成绩
| 学生姓名 | 语文成绩 | 数学成绩 | 英语成绩 |
|---|---|---|---|
| nick | 80 | 70 | 90 |
| john | 60 | 68 | 75 |
| sail | 85 | 70 | 100 |
使用case when then else来实现:
select
name,
max(case subject when '语文'

本文详细介绍了如何在MySQL中进行行转列、列转行的操作,并展示了在分组基础上求TopN的方法。通过具体的案例,解释了在数据转换过程中可能遇到的问题及解决方案,包括对数据的正确聚合和条件过滤。
最低0.47元/天 解锁文章
638

被折叠的 条评论
为什么被折叠?



