教师号 星期号 是否有课
1 2 有
1 3 有
2 1 有
3 2 有`
1 2 有
写一条sql语句让你变为这样的表
教师号 星期一 星期二 星期三
1 2 1
2 1
3 1
各星期下的数字表示:对应的教师在星期几已经排的课数
==============================
建表语句
create table teach_info (
id int,
week int,
isHas int
);
insert into teach_info values(1,2,1);
insert into teach_info values(1,3,1);
insert into teach_info values(2,1,1);
insert into teach_info values(3,2,1);
insert into teach_info values(1,2,1);
select a.* from teach_info a;
测试答案:
select id as 教师号,sum(case week when 1 then 1 else null end) as 星期一,
sum(case week when 2 then 1 else null end) as 星期二,
sum(case week when 3 then 1 else null end) as 星期三 from teach_info group by id;

这是一道SQL面试题目,要求通过SQL查询将原始的教师课程表转换为每个教师在不同星期的课堂数量。提供的解决方案是使用CASE语句结合SUM函数进行聚合,按教师号分组,得出每个教师星期一到星期三的课程数量。
514

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



