问题描述
- sql表进行数据统计,由第一个表统计得到第二个表
- 面试有一个这样的题目:一张教师表,记录了每一个老师在星期几有课,表结构为teacher
id week (星期几) 有课 1 1 有 1 1 有 1 2 有 1 3 有 2 1 有 2 2 有 3 3 有 3 3 有
怎么用sql统计称如下的表,每一天每位老师总共有多少课:
id 星期一 星期二 星期三 1 2 1 1 2 1 1 0 3 0 0 2
该怎么统计称下面这个表呢?面试官说可以用case when来统计。我想的是用group by先分组,然后再在组内进行统计,如果用mysql怎么统计呢?
解决方案
select idsum(case when week=1 then 1 else 0 end) as 星期一 sum(case when week=2 then 1 else 0 end) as 星期二 sum(case when week=3 then 1 else 0 end) as 星期三 from teacher group by id
解决方案二:
select id week count(1) from teacher group by week
时间: 2024-12-21 20:05:54