SQL

[프로그래머스/MySQL] 이름이 없는 동물의 아이디 & 조건에 맞는 회원수 구하기 & 중성화 여부 파악하기

스연 2023. 7. 28. 12:23
728x90

 

1. 이름이 없는 동물의 아이디

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

SELECT ANIMAL_ID
    FROM ANIMAL_INS
    WHERE NAME IS NULL
    ORDER BY ANIMAL_ID;
  • IS NULL도 이제 좀 적응된 것 같다

 


 

2. 조건에 맞는 회원수 구하기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.

SELECT COUNT(USER_ID) AS 'USERS'
    FROM USER_INFO
    WHERE AGE BETWEEN 20 AND 29
        AND JOINED LIKE '2021%';
  • BETWEEN a AND b는 a와 b를 모두 포함하는 이상, 이하의 데이터를 출력한다.
  • 2021년에 가입한 회원 중을 표현하는 방식에도 JOINED BETWEEN '2021-01-01' AND '2021-12-31'이 가능하지만, 모두 2021년이라는 데이터를 포함한다는 점에서 LIKE로 문제를 해결했다.

 

 


 

3. 중성화 여부 파악하기 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

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

SELECT ANIMAL_ID, NAME, 
    IF(SEX_UPON_INTAKE LIKE 'Neutered%' or SEX_UPON_INTAKE LIKE 'Spayed%', 'O', 'X')
        AS 중성화
    FROM ANIMAL_INS
    ORDER BY ANIMAL_ID;
  • MySQL의 IF문을 사용했다. IF문의 형식은 IF(조건, 참일 경우 출력문, 거짓일 경우 출력문) 이다.
728x90