Date:     Updated:

카테고리:

태그: , ,


💡 프로그래머스 스쿨에서 제공하는 MySQL 코딩 테스트 문제들을 풀고 정리했다.


Lv2. 조건에 맞는 도서와 저자 리스트 출력하기

❓ 문제 설명

📝 나의 답

SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK B
JOIN AUTHOR A
ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE CATEGORY = "경제"
ORDER BY PUBLISHED_DATE

💡 풀이 팁

기본적인 JOIN 구문을 적용할 줄 아느냐를 묻는 문제였다. 어김 없이 주의사항에 데이트 포맷을 예시와 맞추라고 나와있다. 이런 주의사항을 잘 읽는 것이 코테에서 핵심인 것 같다. DATE_FORMAT 형식은 아래와 같다.

형식 설명
%Y 년도 4자리
%y 년도 2자리
%M 월 영문
%m 월 숫자
%D 일 영문(1st, 2nd, 3rd…)
%d, %e 일 숫자 (01 ~ 31)
%T hh:mm:ss
%r hh:mm:ss AM/PM
%H, %k 시 (~23)
%h, %l 시 (~12)
%i
%S, %s
%p AM/PM

무엇보다 Alias를 잘 쓰는 습관을 들여야 할 것 같다. 이번 문제의 경우는 Alias를 쓰지 않아도 오류가 나지 않았지만, 만약 SELECT 구문에 두 테이블에 모두 등장하는 변수를 써야 한다면 Alias를 쓰지 않고는 오류가 나게 된다.


성분으로 구분한 아이스크림 총 주문량

❓ 문제 설명

📝 나의 답

SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF F
JOIN ICECREAM_INFO I
ON F.FLAVOR = I.FLAVOR
GROUP BY I.INGREDIENT_TYPE

💡 풀이 팁

GROUP BY 구문을 사용하는 것이 관건이다. 성분 타입별로 합계를 구해야 하므로 기준이 되는 INGREDIENT_TYPEGROUP BY 뒤에 써주고 TOTAL_ORDERSUM() 함수를 씌우면 된다.

AS로 컬럼명을 지정하지 않으면 SUM(F.TOTAL_ORDER)가 컬럼명으로 그대로 출력되므로 이 점을 까먹지 말자.