[Is Null 1~8] SQL 코딩테스트 고득점 Kit

강다겸·2025년 7월 26일
post-thumbnail

1. 경기도에 위치한 식품창고 목록 출력하기 (LV 1)
2. 이름이 없는 동물의 아이디 (LV 1)
3. 이름이 있는 동물의 아이디 (LV 1)
4. NULL 처리하기 (LV 2)
5. 나이 정보가 없는 회원 수 구하기 (LV 1)
6. ROOT 아이템 구하기 (LV 2)
7. 업그레이드 할 수 없는 아이템 구하기 (LV 3)
8. 잡은 물고기의 평균 길이 구하기 (LV 1)

1. 경기도에 위치한 식품창고 목록 출력하기 (LV 1)

정답:

SELECT WAREHOUSE_ID
    ,  WAREHOUSE_NAME
    ,  ADDRESS
    ,  CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END AS FREEZER_YN
  FROM FOOD_WAREHOUSE
 WHERE ADDRESS LIKE '경기%'
 ORDER
    BY WAREHOUSE_ID

2. 이름이 없는 동물의 아이디 (LV 1)

정답:

SELECT ANIMAL_ID
  FROM ANIMAL_INS
 WHERE NAME IS NULL

3. 이름이 있는 동물의 아이디 (LV 1)

정답:

SELECT ANIMAL_ID
  FROM ANIMAL_INS
 WHERE NAME IS NOT NULL

4. NULL 처리하기 (LV 2)

정답:

SELECT ANIMAL_TYPE
    ,  CASE WHEN NAME IS NULL THEN 'No name' 
            ELSE NAME 
        END AS NAME
    ,  SEX_UPON_INTAKE
  FROM ANIMAL_INS
 ORDER
    BY ANIMAL_ID

5. 나이 정보가 없는 회원 수 구하기 (LV 1)

정답:

SELECT SUM(CASE WHEN AGE IS NULL THEN 1 ELSE 0 END) AS USERS
  FROM USER_INFO

6. ROOT 아이템 구하기 (LV 2)

정답:

SELECT p.ITEM_ID
    ,  p.ITEM_NAME
  FROM ITEM_INFO AS p
LEFT 
  JOIN ITEM_TREE AS c ON p.ITEM_ID = c.ITEM_ID
 WHERE c.PARENT_ITEM_ID IS NULL
 ORDER
    BY p.ITEM_ID

7. 업그레이드 할 수 없는 아이템 구하기 (LV 3)

정답:

SELECT ITEM_ID
    ,  ITEM_NAME
    ,  RARITY
  FROM ITEM_INFO 
 WHERE ITEM_ID NOT IN (SELECT t.PARENT_ITEM_ID
                          FROM ITEM_INFO AS i
                        LEFT
                          JOIN ITEM_TREE AS t ON i.ITEM_ID = t.ITEM_ID
                         GROUP
                            BY t.PARENT_ITEM_ID
                        HAVING t.PARENT_ITEM_ID IS NOT NULL)
 ORDER
    BY ITEM_ID DESC

8. 잡은 물고기의 평균 길이 구하기 (LV 1)

정답:

SELECT ROUND(AVG(CASE WHEN LENGTH IS NULL THEN 10
                      ELSE LENGTH END), 2) AS AVERAGE_LENGTH
  FROM FISH_INFO

0개의 댓글