SQL整理五

本文介绍了一个SQL查询技巧,通过一条语句即可查询出每个班级的及格与不及格人数。示例使用了法学02班与公商00班的学生信息表进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


学生信息表:tab1
+------+--------+-----+
|name class score
+------+--------+-----+
| 张三 法学02班 59
+------+--------+-----+
| 李四 公商00班 69
+------+--------+-----+
| 王五 法学02班 95
+------+--------+-----+
| 马六 公商00班 65
+------+--------+-----+
| 阿一 法学02班 88
+------+--------+-----+
| 阿洒 公商00班 66
+------+--------+-----+
| 小游 法学02班 82
+------+--------+-----+
| 小杨 公商00班 67
+------+--------+-----+
| 小赵 法学02班 55
+------+--------+-----+
| 小彭 公商00班 55
+------+--------+-----+
| 小周 法学02班 51
+------+--------+-----+
| 小陈 公商00班 59
+------+--------+-----+
SQL:
+------------------------------------------------------+
CREATE TABLE IF NOT EXISTS `tab1` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
`class` varchar(50) NOT NULL,
`score` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='学生信息表';

INSERT INTO `tab1` VALUES (1, '张三', '法学02班', '59');
INSERT INTO `tab1` VALUES (2, '李四', '公商00班', '69');
INSERT INTO `tab1` VALUES (3, '王五', '法学02班', '95');
INSERT INTO `tab1` VALUES (4, '马六', '公商00班', '65');
INSERT INTO `tab1` VALUES (5, '阿一', '法学02班', '88');
INSERT INTO `tab1` VALUES (6, '阿洒', '公商00班', '66');
INSERT INTO `tab1` VALUES (7, '小游', '法学02班', '82');
INSERT INTO `tab1` VALUES (8, '小杨', '公商00班', '67');
INSERT INTO `tab1` VALUES (9, '小赵', '法学02班', '55');
INSERT INTO `tab1` VALUES (10, '小彭', '公商00班', '55');
INSERT INTO `tab1` VALUES (11, '小周', '法学02班', '51');
INSERT INTO `tab1` VALUES (12, '小陈', '公商00班', '59');
+-------------------------------------------------------+

要求:
1.要求用一条语句查出每个班的及格人数和不及格人数,格式为:class,及格人数,不及格人数
+------------------------------------------------------------+
|select t1.class as 班级, t1.ct as 及格人数,t2.ct1 as 不及格人数|
|from (select count(*) as ct,class |
| from tab1 a |
| where a.score>=60 |
| group by a.class) t1, |
|(select count(*) as ct1 ,class |
| from tab1 b |
| where b.score<60 |
| group by b.class) t2 |
|where t1.class=t2.class |
+------------------------------------------------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值