MySQL,查询及格人数,不及格人数

一个表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            //1代表第1列 或 GROUP BY `class` 

--
-- 表的结构 `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', '');

猜你喜欢

转载自my.oschina.net/u/3545218/blog/1670747