728x90
이전 글
서론
이전에 SUM,MIN,MAX 집계함수에 대해 알아봤다. ISNULL 부분도 빠르게 풀어보려고 한다. 문제 사이트는 다음과 같다.
https://school.programmers.co.kr/learn/courses/30/parts/17045
1. 경기도에 위치한 식품창고 목록 출력하기 - 레벨1
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') as FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS like '%경기도%'
ORDER BY WAREHOUSE_ID
IFNULL이라는 함수를 모르면 못푸는 문제다. 알면 쉽게 풀 수 있다
2. 이름이 없는 동물의 아이디 - 레벨1
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
방심하다가 == NULL 이런거만 안쓰면 틀리지 않는 문제다.
3. 이름이 있는 동물의 아이디 - 레벨1
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID
!= NULL 이런거만 안쓰면 된다. IS NOT NULL만 알면 풀 수 있는 문제
4. NULL 처리하기 - 레벨2
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
IFNULL만 알면 되는 문제
5. 나이 정보가 없는 회원 수 구하기 - 레벨1
SELECT COUNT(*) as USERS
FROM USER_INFO
WHERE AGE IS NULL
6. ROOT 아이템 구하기 - 레벨2
SELECT INFO.ITEM_ID, INFO.ITEM_NAME
FROM ITEM_TREE TREE LEFT JOIN ITEM_INFO INFO
ON TREE.ITEM_ID = INFO.ITEM_ID
WHERE TREE.PARENT_ITEM_ID IS NULL
7. 업그레이드 할 수 없는 아이템 구하기 - 레벨3
SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO
WHERE ITEM_ID NOT IN
(
SELECT DISTINCT PARENT_ITEM_ID
FROM ITEM_TREE
WHERE PARENT_ITEM_ID IS NOT NULL
)
ORDER BY ITEM_ID DESC
자신이 PARENT_ITEM_ID인 아이템이 하나도 없으면 최종 업그레이드 아이템이다. 천천히 종이에 쓰면서 계산하면 쉽게 생각할 수 있다.
- 자식이 있는 아이템을 조회한다. (PAERNT_ITEM_ID로 포함되는 애들을 찾는다. DISTINCT로 중복도 제거해줬다)
- 자식이 있는 ITEM_ID가 아닌 아이템 정보를 조회하여 출력한다
8. 잡은 물고기의 평균 길이 구하기 - 레벨1
SELECT ROUND(AVG(IFNULL(LENGTH, 10)), 2) AVERAGE_LENGTH
FROM FISH_INFO
ROUND, AVG, IFNULL을 알면 쉬운 문제다
728x90
'database' 카테고리의 다른 글
| Programmers SQL 고득점 Kit 풀기 - String, Date(2) (0) | 2025.02.13 |
|---|---|
| Programmers SQL 고득점 Kit 풀기 - String, Date(1) (0) | 2025.02.12 |
| Programmers SQL 고득점 Kit 풀기 - SUM,MAX,MIN (0) | 2025.02.11 |
| Programmers SQL 고득점 Kit 풀기 - SELECT(3) (0) | 2025.01.14 |
| Programmers SQL 고득점 Kit 풀기 - SELECT(2) (2) | 2025.01.13 |