- COUNT를 이용한 동명 동물 수 찾기 문제

 

문제

 

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.

 

 

나의 정답

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

이 문제 같은 경우 먼저 서브 쿼리를 이용하여 NAME 별 COUNT를 하여 NAME 별 총 수를 구해주었다. 이때 NAME이 NULL 값은 제외해 주었다. 그 이후 메인 쿼리에서 COUNT가 1 보다 큰 수만 출력해주어 동물 이름이 두번 이상쓰인 이름만 조회하게 해주었다.

 

문제

 

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

 

 

나의 정답

SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR >= 9 AND HOUR < 20
ORDER BY HOUR ASC

 

이 문제같은 경우 시간대 별로 분류하여 각 시간대별 입양 건수를 구하는 문제였다. 해당 문제에서는 GROUP BY HAVING 구문또한 같이 사용해주었는데 이 구문은 시간대별로 구분한 후 HAVING 절에서 9시부터 19시까지만 조회할 수 있게 해주었다. 또한 이 구문에서는 원래 DB에서는 DATETIME TYPE을 HOUR(DATETIME)을 사용하여 HOUR만 추출하여 쉽게 쓸 수 있게 해주었다.

+ Recent posts