[프로그래머스 MySQL] 조건에 맞는 도서와 저자 리스트 출력하기, 성분으로 구분한 아이스크림 총 주문량(JOIN, GROUP BY)
카테고리: Programmers-MySQL
💡 프로그래머스 스쿨에서 제공하는 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_TYPE
을 GROUP BY
뒤에 써주고 TOTAL_ORDER
에 SUM()
함수를 씌우면 된다.
AS
로 컬럼명을 지정하지 않으면 SUM(F.TOTAL_ORDER)
가 컬럼명으로 그대로 출력되므로 이 점을 까먹지 말자.