一个表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` 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', '');数据