不及格科数大于0即count++一次如何实现

   有如下表:学生基础信息表(学号,姓名,宿舍号等),学生成绩表(学号,课程号,课程成绩),请问我想对其统计每个宿舍号对应的不及格人数SQL语句应该是怎样的,也就是说先成绩表对应基础信息表确定学生是否存在,然后再统一同一个宿舍号人中有多少人不及格,这里条件判断就是当他的不及格科数大于0count++一次,最后输出表格式(宿舍号,宿舍总成绩,宿舍不及格人数,宿舍不及格总科数),对于宿舍总成绩我用的是用sum(s.课程成绩)这种,宿舍不及格总科数就单纯每次判断每个学生的课程成绩是否小于60即可,最关键的就是不太懂       “条件判断就是当他的不及格科数大于0count++一次” 这里如何实现 ,请求大神解答!!!

弄3个子查询join下即可

--在成绩表中添加宿舍号的所有结果集
select 成绩表.*,基本信息表.宿舍号
from 成绩表,基本信息表
where 成绩表.学号=基本信息表.学号


---题目需要的结果集
select tbsum.宿舍号,tbsum.宿舍总成绩,tbmin60person.宿舍不及格人数,tbmin60subject.宿舍不及格总科数 from(
select 基本信息表.宿舍号,sum(课程成绩)宿舍总成绩 
from 成绩表,基本信息表
where 成绩表.学号=基本信息表.学号
group by 宿舍号)tbsum
left join(select 基本信息表.宿舍号,count(distinct 成绩表.学号)宿舍不及格人数
from 成绩表,基本信息表
where 成绩表.学号=基本信息表.学号 and 课程成绩<60
group by 宿舍号)tbmin60person on tbsum.宿舍号=tbmin60person.宿舍号
left join (select 基本信息表.宿舍号,count(1)宿舍不及格总科数
from 成绩表,基本信息表
where 成绩表.学号=基本信息表.学号 and 课程成绩<60
group by 宿舍号)tbmin60subject on tbsum.宿舍号=tbmin60subject.宿舍号



img

换行很重要

sql count ++?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632