온보딩 스터디 15일차에는 프로그래머스에서 SQL 문제를 풀기 시작했다. java 알고리즘 문제에 비해서는 쉬웠다. 초반에는 같은 조원분의 말씀처럼 '힐링'되는 느낌ㅋㅋ이었는데, 후반으로 가면서 다뤄야 할 데이터가 많아지거나 조건이 까다로워질수록 서브쿼리를 써야 하는 등의 복잡한 문제들이 등장하기 시작했다.
경기도에 위치한 식품창고 목록 출력하기
문제 :
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS,
CASE
WHEN FREEZER_YN IS NULL THEN 'N'
ELSE FREEZER_YN END
FROM FOOD_WAREHOUSE
WHERE WAREHOUSE_NAME LIKE '%경기%'
ORDER BY WAREHOUSE_ID
가격이 제일 비싼 식품의 정보 출력하기
문제 : FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
SELECT * FROM FOOD_PRODUCT
WHERE PRICE IN (
SELECT MAX(PRICE) FROM FOOD_PRODUCT
)
동명 동물 수 찾기
문제: 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
SELECT NAME, COUNT(NAME) FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME