DB 중복 개수 확인

MySQL에서 테스트하였습니다.
중복 개수 확인

1 문제상황[편집]

아래와 같은 테이블에서 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)

2 해결방법[편집]

모든 값의 개수 세기
SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 컬럼명;
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개 이상)인 건만 세기
SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 컬럼명 HAVING COUNT(*)>1;
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)

3 같이 보기[편집]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}