반응형
만약 위와 같은 데이터가 있다고 할 때 이름이 중복된 동물들의 모든 아이디를 조회해보려고 합니다.
그러나 아래와 같이 작성하여 실행할 시 이름이 중복된 동물들의 동물 아이디와 이름이 출력되지만
중복된 동물들의 모든 아이디가 출력되지 않았습니다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME
따라서 WHERE 절의 in을 사용해서 GROUP BY로 NAME을 묶어서 중복이 1개 이상이라는 조건을 설정합니다.
아래와 같이 작성하면 이름이 중복된 동물들의 모든 아이디를 조회할 수 있습니다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME in (
SELECT NAME
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) > 1
)
ORDER BY NAME
반응형
'💾Database > 🐬MySQL' 카테고리의 다른 글
[MySQL] 기본 쿼리문 정리 (0) | 2021.11.23 |
---|---|
SQL 튜토리얼, 연습, 실습 사이트 모음 (4) | 2021.10.17 |
[프로그래머스 SQL 고득점 kit] - String, Date 문제 풀이 (0) | 2021.03.05 |
[프로그래머스 SQL 고득점 kit] - JOIN 문제 풀이 (0) | 2021.03.04 |
[프로그래머스 SQL 고득점 kit] - IS NULL 문제 풀이 (0) | 2021.03.03 |