sql面试体 --分组 查询--4

本文介绍了一种使用SQL将表格从行格式转换为列格式的方法,通过具体实例展示了如何实现这一转变,这对于数据分析师和数据库管理员来说非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面试题:怎么把这样一个表儿
year  month amount
1991   1     1.1
1991   2     1.2
1991   3     1.3
1991   4     1.4
1992   1     2.1
1992   2     2.2
1992   3     2.3
1992   4     2.4
查成这样一个结果
year m1  m2  m3  m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4 

create table mes (year varchar(22), mouth varchar(22), amount double);
insert into mes values('1991','1',1.1);
insert into mes values('1991','2',1.2);
insert into mes values('1991','3',1.3);
insert into mes values('1991','4',1.4);
insert into mes values('1992','1',2.1);
insert into mes values('1992','2',2.2);
insert into mes values('1992','3',2.3);
insert into mes values('1992','4',2.4);


select m.year, 
(select m1.amount from mes m1 where m1.mouth='1' and m1.year = m.year) a1 ,
(select m2.amount from mes m2 where m2.mouth='2' and m2.year = m.year) a2 ,
(select m3.amount from mes m3 where m3.mouth='3' and m3.year = m.year) a3 ,
(select m4.amount from mes m4 where m4.mouth='4' and m4.year = m.year) a4 
from mes m group by year;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静山晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值