因为网上没有找到相关的解决方案,将这个方案拿出来供你们参考,下面以sum函数为例mysql
建表、数据sql
CREATE TABLE `student` ( `name` varchar(10) DEFAULT NULL COMMENT '姓名', `sex` varchar(1) DEFAULT NULL COMMENT '性别', `id` varchar(2) DEFAULT NULL COMMENT '主键' PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; INSERT INTO `eye`.`student` (`name`, `sex`, `age`) VALUES ('顾二嫂', '女', '30'); INSERT INTO `eye`.`student` (`name`, `sex`, `age`) VALUES ('宋江', '男', '48'); INSERT INTO `eye`.`student` (`name`, `sex`, `age`) VALUES ('林冲', '男', '35'); INSERT INTO `eye`.`student` (`name`, `sex`, `age`) VALUES ('娇娘', '女', NULL);
mysql默认的sum函数处理结果函数
select sex as '性别',sum(age) as '总年龄' from student GROUP BY sex
如下是没有忽略null的处理方案(对于值为null的状况,sum函数会把当前值当0处理,那么咱们只要让为null的值大于0便可)code
select sex as '性别', (case when sum(IFNULL(age,1))>sum(age) then null else sum(age) end) as '总年龄' from student GROUP BY sex