文章目录 1、数据库表结构:2、问题:3、答案:4、执行结果: 1、数据库表结构: CREATE TABLE `name` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `sex` varchar(255) DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1; INSERT INTO `name` (`id`, `name`, `age`, `sex`) VALUES (1, '张三', 11, '0'); INSERT INTO `name` (`id`, `name`, `age`, `sex`) VALUES (2, '李四', 21, '0'); INSERT INTO `name` (`id`, `name`, `age`, `sex`) VALUES (3, '王五', 21, '1'); INSERT INTO `name` (`id`, `name`, `age`, `sex`) VALUES (4, '赵六', 41, '1'); 2、问题: 1个表有id、name、age、sex列。查询年龄在10-20、21-30、大于30的人数。 3、答案: SELECT CASE WHEN ( age >= 10 AND age <= 20 ) THEN '10-20' WHEN ( age >= 21 AND age <= 30 ) THEN '21-30' ELSE '30-' END 'age_range', count(*) AS count FROM name GROUP BY CASE WHEN ( age >= 10 AND age <= 20 ) THEN '10-20' WHEN ( age >= 21 AND age <= 30 ) THEN '21-30' ELSE '30-' END; 4、执行结果: