mysql그룹by와count를 동시에 사용하는 문제 해결

2442 단어
예를 들어 이런 표는 이메일과passwords가 모두 같지 않은 기록된 항목을 통계하고 싶다
CREATE TABLE IF NOT EXISTS `test_users` ( 
`email_id` int(11) unsigned NOT NULL auto_increment, 
`email` char(100) NOT NULL, 
`passwords` char(64) NOT NULL, 
PRIMARY KEY (`email_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

INSERT INTO `test_users` (`email_id`, `email`, `passwords`) VALUES 
(1, ‘[email protected]', ‘1e48c4420b7073bc11916c6c1de226bb'), 
(2, ‘[email protected]', ‘5294cef9f1bf1858ce9d7fdb62240546′), 
(3, ‘default@gmail.com', ‘5294cef9f1bf1858ce9d7fdb62240546′), 
(4, ‘[email protected]', ”), 
(5, ‘[email protected]', ”);

 
일반적으로 우리의 방법은 다음과 같다.
SELECT COUNT(*) FROM test_users WHERE 1 = 1 GROUP BY email,passwords

 
이런 결과는 무엇일까요?
COUNT(*) 
1 
2 
1 
1

 
분명히 이것은 내가 원하는 결과가 아니다. 이렇게 통계된 것은 같은 이메일과passwords의 각 기록 수량의 합이다. 다음은 이렇게 하면 된다.
SELECT COUNT(DISTINCT email,passwords) FROM `test_users` WHERE 1 = 1

좋은 웹페이지 즐겨찾기