- 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만 추출하여 쉽게 쓸 수 있게 해주었다.
'SQL' 카테고리의 다른 글
| [SQL] 간단한 SQL WITH 구문 복습 (0) | 2023.08.21 |
|---|---|
| [SQL] 간단한 SQL OUTER JOIN 구문 복습하기 (0) | 2023.08.03 |
| [SQL] 간단한 SQL JOIN 과 GROUP BY 결합 구문 복습 (0) | 2023.07.29 |
| [SQL] 간단한 SQL 구문 NULL값 처리하는 방법 (1) | 2023.07.25 |
| [SQL] 간단한 SQL LIKE, REGEXP 구문 복습 (1) | 2023.07.21 |