【每日一练:SQL】统计教师每天上课的次数

SQL题:
统计教师每天上课的次数,数据如下:

教师号 星期号 是否有课
1           2          有
1           3          有
2           1          有
3           2          有
1           2          有
写一条sql语句让你变为这样的表
教师号 星期一 星期二 星期三
1            0          2       1
2            1          0       0
3            0          1       0
各星期下的数字表示:对应的教师在星期几已经排的课

数据库版本:Oracle 11g

解答:

--创建表
create table tb_teacher_leson(tid int,week int,judge varchar2(5));

insert into tb_teacher_leson values(1,2,'有');
insert into tb_teacher_leson values(1,3,'有');
insert into tb_teacher_leson values(2,1,'有');
insert into tb_teacher_leson values(3,2,'有');
insert into tb_teacher_leson values(1,2,'有');

commit;
--查询数据
select * from tb_teacher_leson;
TID    WEEK    JUDGE
1        2        有
1        3        有
2        1        有
3        2        有
1        2        有

--统计教师每天上课次数

select tid as "教师号"
       , sum(case week when 1 then 1 else 0 end) as "星期一"
       , sum(case week when 2 then 1 else 0 end) as "星期二"
       , sum(case week when 3 then 1 else 0 end) as "星期三"
  from tb_teacher_leson t
 group by t.tid;

教师号	星期一	星期二	星期三
1	0	2	1
2	1	0	0
3	0	1	0


 

 

你可能感兴趣的:(每日一练,蒙夛的每日一练(SQL,逻辑等))