-- 创建学生成绩表 CREATE TABLE `score` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `gender` varchar(10) NOT NULL, `score` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 插入测试数据 INSERT INTO `score` (`name`, `gender`, `score`) VALUES ('小明', '男', 70); INSERT INTO `score` (`name`, `gender`, `score`) VALUES ('小红', '女', 80); INSERT INTO `score` (`name`, `gender`, `score`) VALUES ('小刚', '男', 60); INSERT INTO `score` (`name`, `gender`, `score`) VALUES ('小丽', '女', 90); INSERT INTO `score` (`name`, `gender`, `score`) VALUES ('小李', '男', 65); INSERT INTO `score` (`name`, `gender`, `score`) VALUES ('小芳', '女', 85); -- 统计及格的男女人数 SELECT SUM(CASE WHEN gender = '男' AND score >= 60 THEN 1 ELSE 0 END) AS '及格男生人数', SUM(CASE WHEN gender = '女' AND score >= 60 THEN 1 ELSE 0 END) AS '及格女生人数' FROM score;
以上代码中,首先大家通过CREATE TABLE语句创建了一个学生成绩表。然后使用INSERT INTO语句插入了一些测试数据。最后使用SELECT语句根据性别和成绩条件,分别统计了及格的男女人数。
在SELECT语句中,大家通过CASE WHEN语句分别计算了及格的男女人数。当满足条件时,就返回1,不满足就返回0。最后使用SUM函数将满足条件的数值累加,就得到了及格的男女人数。