본문 바로가기
  • 실행력이 모든걸 결정한다
DB/SQL Problems

[SQL-GROUP BY, 난이도 중] 동명 동물 수 찾기

by 김코더 김주역 2020. 12. 8.
반응형

 

해설 : 이름 별 동명 동물 마리 수를 조회해야 하기 때문에 NAME 을 기준으로 그룹핑 되어야 한다.

NAME을 기준으로 그룹핑 하여, NAME과 NAME 별로 그룹핑된 컬럼 수를 조회하는 서브테이블(A) 을 만들어두고

이 테이블의 COUNT 필드값이 2 이상인 경우에만 조회를 하도록 조건을 걸어서 동명 동물 정보만 출력할 수 있게 하였다. 그리고 마지막에 NAME을 기준으로 오름차순 정렬했고, 최종 적으로 A 테이블에서 이 문제에서 원하는 정보인 NAME과 COUNT 필드를 조회할 수 있게 하면 된다.

 

SELECT A.NAME, A.COUNT
FROM
    (SELECT NAME, COUNT(NAME) COUNT 
    FROM ANIMAL_INS
    GROUP BY NAME) AS A
WHERE A.COUNT>1
ORDER BY A.NAME;

 

 

 

 

 

SELECT : 조회하라

 

A.NAME, A.COUNT : A 테이블의 "NAME" , "COUNT" 필드를

 

FROM
    (SELECT NAME, COUNT(NAME) COUNT 
    FROM ANIMAL_INS
    GROUP BY NAME) AS A

: ANIMAL_INS 테이블의 NAME을 기준으로 그룹핑 하여, NAME과 NAME 별로 그룹핑된 컬럼 수를 조회하는 테이블로 부터 (조회 시 COUNT(NAME) 필드는 필드명을 "COUNT"로 정하고, 이 테이블의 이름은 A로 지정함)

 

WHERE A.COUNT>1 : A 테이블의 "COUNT" 필드 값이 1을 초과하는 레코드에만


ORDER BY A.NAME : A 테이블의 "NAME" 필드를 기준으로 오름차순 하여

반응형

댓글