백엔드

테이블에서 A 라는 필드에서 중복된 값을 가지고 있는 레코드들을 어떻게 구하지? (Mysql)

프흐프좋아 2023. 8. 3. 11:43

your_table에는 A라는 필드가 존재한다

이 A의 필드에는 여러가지 값이 들어가지만, 종종 같은 값이 들어가기도 한다.

예를 들어, 1, 2, 3, 4 ... 값이 들어가다가

어느때에는 2 , 4와같이 이미 한번 들어갔던 값이 들어갈 수 있는 테이블이다.

 

근데 나는 A 필드의 무슨 값이 중복해서 여러번 들어갔는지 알고싶다.

 

그럴 땐 요렇게 쓰면 된다.

SELECT A, COUNT(*) as count
FROM your_table
GROUP BY A
HAVING count > 1;

 

HAVING 절은 GROUP BY를 사용했을 때 쓸 수 있는 쿼리절 중 하나다.

A에 대하여 그룹화를 하고,

그룹화를 한 값들에 대해 count 값이 1보다 큰 값들만 남겨두는 것이다

이렇게 하면 어떤 값들이 중복해서 들어갔는지 확인할 수 있다!

 

실무에서 잘못된 insert로 중복값이 들어가는 경우가 있는데 고런 경우를 확인할 때 써먹을 수 있었다