10-7 统计不及格人数超过3人的课程号和人数

目录

题目

表结构:

表样例

输出样例:

答案

过程


题目

本题目要求编写SQL语句,

统计出``sc```表中不及格人数超过3人的课程号和人数,要求结果中列名分别显示“课程号”、“不及格人数”。

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

CREATE TABLE sc (
 sno char(7) ,
 cno char(7) ,
  score decimal(4,1),
    point decimal(2,1),
  PRIMARY KEY (sno,cno)
) ;

表样例

请在这里给出上述表结构对应的表样例。例如

sc表:

sno

cno

score

point

1711202

0000011

53.0

0.0

1711202

0000027

38.0

1.0

1911201

0000027

44.0

1.0

1911201

0000052

71.0

2.0

1911211

0000027

51.0

1.0

1911211

0000052

71.0

2.0

1911215

0000027

58.0

1.0

输出样例:

请在这里给出输出样例。例如:

课程号

不及格人数

0000027

4

答案

SELECT  cno 课程号,COUNT(score) 不及格人数 
FROM sc WHERE score<60.0 
GROUP BY cno 
HAVING COUNT(score) >3;

过程

CREATE DATABASE PTA;
USE PTA;
CREATE TABLE FRISTSEVEN (
                    sno char(7) ,
                    cno char(7) ,
                    score decimal(4,1),
                    point decimal(2,1),
                    PRIMARY KEY (sno,cno)
) ;
#对于声明语法DECIMAL(M,D),自变量的值范围如下:
#M是最大位数(精度),范围是1到65。可不指定,默认值是10。
#D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。
INSERT INTO FRISTSEVEN VALUES
                           ('1711202','0000011',53.0,0.0),
                           ('1711202','0000027',38.0,1.0),
                           ('1911201','0000027',44.0,1.0),
                           ('1911201','0000052',71.0,2.0),
                           ('1911211','0000027',51.0,1.0),
                           ('1911211','0000052',71.0,2.0),
                           ('1911215','0000027',58.0,1.0);
SELECT * FROM FRISTSEVEN;
SELECT cno ,COUNT(sno) FROM FRISTSEVEN  GROUP BY cno;
SELECT cno c ,COUNT(sno) FROM FRISTSEVEN
                       WHERE score<60 GROUP BY c;
SELECT COUNT(sno) FROM FRISTSEVEN;
SELECT COUNT(sno) FROM FRISTSEVEN WHERE score<60;

SELECT cno 课程号,COUNT(sno) 不及格人数
FROM FRISTSEVEN
WHERE score<60
GROUP BY cno
HAVING 不及格人数>3
ORDER BY cno DESC ;

SELECT cno,score FROM FRISTSEVEN WHERE score<60;
#SELECT cno,score 成绩 FROM FRISTSEVEN   WHERE 成绩<60;#报错先执行WHERE再执行cno,score 成绩;
SELECT cno,score 成绩 FROM FRISTSEVEN  s WHERE s.score<60;
#一般不支持在select中继续使用别名 或者where语句中使用,但是在orderby groupby 可以使用
#虽然GROUP BY执行顺序在SELECT前面
#from-->where-->group by -->having --- >select --> order

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值