一、现在有一张信息表,统计男性多少,女性多少。
CREATE TABLE `testsex` (
`id` int NOT NULL AUTO_INCREMENT,
`sex` varchar(1) DEFAULT NULL COMMENT '0女、1男',
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3;
二、最常见的做法:
SELECT
sex,
COUNT(sex)
FROM testsex
GROUP BY sex
可以查出来,但返回的是多行。返回的数据类型需要定义为List<>,不是很直观友好。
三、改为一行:
SELECT
sum( case when sex=0 then 1 else 0 end ) as "woman",
sum( case when sex=1 then 1 else 0 end ) as "man"
FROM testsex
这种返回的数据类型就不用这么复杂了。