https://programmers.co.kr/learn/courses/30/parts/17044
# 고양이와 개는 몇 마리 있을까
- 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. -> group by
- 이때 고양이를 개보다 먼저 조회해주세요. -> order by
SELECT ANIMAL_TYPE, count(ANIMAL_TYPE) as 'count'
from ANIMAL_INS
group by ANIMAL_TYPE
order by ANIMAL_TYPE;
# 동명 동물 수 찾기
- 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. -> group by
- 이때 결과는 이름이 없는 동물은 집계에서 제외하며, -> count(name)
- count(*)으로 하면 null값 포함
- 결과는 이름 순으로 조회해주세요. -> order by
SELECT NAME, count(*) as 'count'
from ANIMAL_INS
group by NAME having count(NAME) > 1
order by NAME;
# 입양 시각 구하기(1)
- 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다.
- 09:00부터 19:59까지, -> between 9 and 19
- 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. -> group by
- 이때 결과는 시간대 순으로 정렬해야 합니다. -> order by hour
- Point. hour() 함수 - 시간 추출
SELECT hour(DATETIME) as 'HOUR', count(DATETIME) as 'COUNT'
from ANIMAL_OUTS
where hour(DATETIME) between 9 and 19
group by HOUR
order by HOUR;
# 입양 시각 구하기(2)
- 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
- Point. 입양 시각 구하기(1)와 달리 모든 시간대를 조회해야한다 쿼리문에서 로컬 변수를 활용하는 문제
SET @hour := -1; -- 변수 선언
SELECT (@hour := @hour + 1) as HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23
반응형
'알고리즘 > SQL' 카테고리의 다른 글
프로그래머스 SQL 고득점 Kit 풀이 - JOIN (0) | 2021.03.11 |
---|---|
프로그래머스 SQL 고득점 Kit 풀이 - String, Date (0) | 2021.03.11 |
프로그래머스 SQL 고득점 Kit 풀이 - IS NULL (0) | 2021.03.11 |
프로그래머스 SQL 고득점 Kit 풀이 - SUM,MAX,MIN (0) | 2021.03.10 |
프로그래머스 SQL 고득점 Kit 풀이 - SELECT (0) | 2021.03.10 |