[sql] DAY3 (프로그래머스 SQL 고득점 Kit)

ryz·2022년 10월 11일

프로그래머스 SQL

목록 보기
3/9
post-thumbnail

lv2. SUM, MAX, MIN : 동물 수 구하기
동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.

SELECT COUNT (*) FROM ANIMAL_INS

lv2. SUM, MAX, MIN : 중복 제거하기
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

SELECT COUNT (DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL

lv2. String, Date : 중성화 여부 파악하기
동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.

SELECT ANIMAL_ID, NAME, 
CASE
    WHEN SEX_UPON_INTAKE LIKE 'Spayed%' THEN 'O'
    WHEN SEX_UPON_INTAKE LIKE 'Neutered%' THEN 'O'
    ELSE 'X'
END AS '중성화'
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID

/*SELECT하는 내용을 바꿔서 조회하고 싶을 때는 CASE WHEN 사용.
CASE
    WHEN 조건식1 THEN 내용1(식1)
    WHEN 조건식2 THEN 내용2(식2)
    ...
    ELSE 식3
END AS '컬럼명'*/

lv2. IS NULL : NULL 처리하기
입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.

SELECT ANIMAL_TYPE, 
IFNULL(NAME, "No name") AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID

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

SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS 
WHERE HOUR(DATETIME) BETWEEN '09:00' AND '19:59'
GROUP BY HOUR
ORDER BY HOUR

0개의 댓글