MySQL에서 도메인에 값들의 갯수를 세어야 할 때가 있습니다. 그럴 때 사용할 수 있는 것이 SUM과 IF의 조합입니다.


1. 테스트할 데이터 준비



CREATE TABLE IF NOT EXISTS `count_test` (
`id` int(11) NOT NULL,
`state` enum('Y','N') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `count_test` (`id`, `state`) VALUES
(1, 'Y'),
(2, 'Y'),
(3, 'Y'),
(4, 'Y'),
(5, 'N'),
(6, 'Y'),
(7, 'N'),
(8, 'Y'),
(9, 'Y'),
(10, 'N');



2. 갯수 세기(SUM, IF)


SELECT SUM(IF(state = "Y", 1, 0)) AS y_cnt, SUM(IF(state = "N", 1, 0)) AS n_cnt FROM count_test


+ Recent posts