一个表score,字段是name,class,score。分别代表姓名,所在班级,分数。
.....
要求用一条语句查出每个班的及格人数和不及格人数,格式为:class,及格人数,不及格人数。
SELECT `class`, SUM(CASE WHEN score>=60 THEN 1 ELSE 0 END), SUM(CASE WHEN score>=60 THEN 0 ELSE 1 END) FROM score GROUP BY 1
-- -- 表的结构 `score` -- CREATE TABLE IF NOT EXISTS `score` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `class` int(11) NOT NULL, `score` varchar(10) NOT NULL, `txt` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ; -- -- 转存表中的数据 `score` -- INSERT INTO `score` (`id`, `name`, `class`, `score`, `txt`) VALUES (1, '张三', 1, '60', ''), (2, '李四', 2, '80', ''), (3, '张三1', 1, '20', ''), (4, '李四2', 2, '40', ''), (5, '张三2', 1, '50', ''), (6, '李四3', 2, '90', ''), (7, '王五', 1, '90', ''), (8, '李六', 2, '85', '');
转载请注明:谷谷点程序 » MySQL面试题,查询及格人数,不及格人数