더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/273712
-- 아이템의 부모가 있다면 그 부모는 업그레이드를 할 수 있음
WITH no_upgrade AS(
SELECT i1.ITEM_ID
FROM ITEM_TREE i1
LEFT JOIN ITEM_TREE i2
ON i1.ITEM_ID = i2.PARENT_ITEM_ID -- 아이템의 부모를 매칭하여 부모 ID가 없는 아이템 식별
WHERE i2.PARENT_ITEM_ID IS NULL -- 부모 아이디가 NULL이라면 업그레이드 불가.
)
SELECT i.ITEM_ID, i.ITEM_NAME, i.RARITY
FROM no_upgrade n
INNER JOIN ITEM_INFO i
ON n.ITEM_ID = i.ITEM_ID
ORDER BY i.ITEM_ID DESC
각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/299308
-- 분기 설정
WITH qua AS(
SELECT
CASE
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 1 AND 3 THEN '1Q'
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 3 AND 6 THEN '2Q'
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 6 AND 9 THEN '3Q'
ELSE '4Q'
END 'QUARTER'
FROM ECOLI_DATA
)
SELECT *, COUNT(QUARTER) ECOLI_COUNT
FROM qua
GROUP BY QUARTER
ORDER BY QUARTER
SELECT
CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') QUARTER,
COUNT(*) ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER