✔️ 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)
해결방법
모든 값의 개수 세기
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)