SQL 고득점 Kit - 8.22

김동현·2024년 8월 22일

SQL 고득점 Kit

목록 보기
36/56

GROUP BY - 고양이와 개는 몇 마리 있을까

문제

동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/59040

풀이

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE


---
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY CASE 
             WHEN ANIMAL_TYPE = 'Cat' THEN 1
             WHEN ANIMAL_TYPE = 'Dog' THEN 2
             ELSE 3
         END;

리뷰

  • 고양이를 먼저 조회하게 하는 것이 조건인데 그냥 ORDER BY를 사용하는 것이 맞을까 생각했다.
  • 따라서 CASE를 통해 조건에 순서를 부여하면 원하는 조건에 맞게 조회를 할 수 있다.

String, Date - 중성화 여부 파악하기

문제

보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/59409

풀이

SELECT 
    ANIMAL_ID,
    NAME,
    CASE
        WHEN SEX_UPON_INTAKE LIKE 'Intact%' THEN 'X'
        ELSE 'O'
    END '중성화'
FROM ANIMAL_INS

리뷰

  • CASE를 통해서 값을 수정해서 출력했다.

GROUP BY - 입양 시각 구하기(1)

문제

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

https://school.programmers.co.kr/learn/courses/30/lessons/59412

풀이

SELECT 
    HOUR(DATETIME) HOUR, 
    COUNT(TIME(DATETIME)) COUNT
FROM ANIMAL_OUTS 
WHERE TIME(DATETIME) BETWEEN '09:%' AND'20:%' -- 09:00부터 19:59까지
GROUP BY HOUR(DATETIME)
ORDER BY TIME(DATETIME)

리뷰

  • BETWEEN을 통해 시간대 조건을 만족하게 한 뒤 그룹화를 통해 집계하였다.

String, Date - 루시와 엘라 찾기

문제

동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/59046

풀이

SELECT 
    ANIMAL_ID, 
    NAME, 
    SEX_UPON_INTAKE
FROM ANIMAL_INS 
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID

리뷰

  • IN을 통해 여러 조건을 한 줄에 작성

GitHub

고양이와 개는 몇 마리 있을까
https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/59040.%E2%80%85%EA%B3%A0%EC%96%91%EC%9D%B4%EC%99%80%E2%80%85%EA%B0%9C%EB%8A%94%E2%80%85%EB%AA%87%E2%80%85%EB%A7%88%EB%A6%AC%E2%80%85%EC%9E%88%EC%9D%84%EA%B9%8C

중성화 여부 파악하기
https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/59409.%E2%80%85%EC%A4%91%EC%84%B1%ED%99%94%E2%80%85%EC%97%AC%EB%B6%80%E2%80%85%ED%8C%8C%EC%95%85%ED%95%98%EA%B8%B0

입양 시각 구하기(1)
https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/59412.%E2%80%85%EC%9E%85%EC%96%91%E2%80%85%EC%8B%9C%EA%B0%81%E2%80%85%EA%B5%AC%ED%95%98%EA%B8%B0%EF%BC%881%EF%BC%89

루시와 엘라 찾기
https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/59046.%E2%80%85%EB%A3%A8%EC%8B%9C%EC%99%80%E2%80%85%EC%97%98%EB%9D%BC%E2%80%85%EC%B0%BE%EA%B8%B0

profile
'The best way to get started is to quit talking and begin doing.'

0개의 댓글