본문 바로가기

MySQL

DB 중복 개수 확인

출처 : http://jmnote.com/wiki/SQL_%EC%A4%91%EB%B3%B5_%EA%B0%9C%EC%88%98_%ED%99%95%EC%9D%B8


(SQL 중복 개수 확인에서 넘어옴)
Yes check.svg MySQL에서 테스트되었습니다.
중복 개수 확인

문제상황

아래와 같은 테이블에서 A, B, C, … 각각의 개수를 구하고 싶다.

mysql> SELECT * FROM jmtable;
+----+-----+
| id | str |
+----+-----+
|  1 | A   |
|  2 | B   |
|  3 | A   |
|  4 | C   |
|  5 | C   |
|  6 | E   |
|  7 | D   |
|  8 | C   |
+----+-----+
8 rows in set (0.00 sec)

해결방법

모든 값의 개수 세기
mysql> SELECT str, COUNT(*) FROM jmtable GROUP BY str;
+-----+----------+
| str | COUNT(*) |
+-----+----------+
| A   |        2 |
| B   |        1 |
| C   |        3 |
| D   |        1 |
| E   |        1 |
+-----+----------+
5 rows in set (0.00 sec)
중복(2개 이상)인 건만 세기
mysql> SELECT str, COUNT(*) FROM jmtable GROUP BY str HAVING COUNT(*)>1;
+-----+----------+
| str | COUNT(*) |
+-----+----------+
| A   |        2 |
| C   |        3 |
+-----+----------+
2 rows in set (0.00 sec)

같이 보기