코드카타
저자 별 카테고리 별 매출액 집계하기
2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문
결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요.
- 매출액(TOTAL_SALES = 판매량 * 판매가) : sum()
- 2022년 1월 : where like ('2022-01%')
- 저자 별, 카테고리 별 : group by
- 정렬 : order by
SELECT B.AUTHOR_ID, AUTHOR_NAME, CATEGORY, SUM(SALES*PRICE) AS TOTAL_SALES
FROM BOOK_SALES S JOIN BOOK B ON S.BOOK_ID = B.BOOK_ID
JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID
WHERE SALES_DATE LIKE ('2022-01%')
GROUP BY B.AUTHOR_ID, AUTHOR_NAME, CATEGORY
ORDER BY AUTHOR_ID ASC, CATEGORY DESC
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요.
특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요.
- 2022년 8월부터 2022년 10월 : between 8 and 10
- 월별 : month
- 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID ; 서브쿼리
- 월별 자동차 ID : group by
- 총 대여 횟수가 5회 이상 : having >= 5
- 월별 자동차 ID 별 : group by month, car_id
- 정렬 : order by
SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(CAR_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS A
WHERE MONTH(START_DATE) BETWEEN 8 AND 10 AND
CAR_ID IN (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) BETWEEN 8 AND 10
GROUP BY CAR_ID
HAVING COUNT(CAR_ID) >= 5
)
GROUP BY MONTH(START_DATE), CAR_ID
ORDER BY MONTH(START_DATE) ASC, CAR_ID DESC;
그룹별 조건에 맞는 식당 목록 출력하기
리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요.
회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고,
결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.
- 리뷰 작성일 : date_format
- 리뷰를 가장 많이 작성한 회원의 리뷰 : 서브쿼리
- 회원의 리뷰: group by
- 가장 많이 : limit 1
- 정렬 : order by
SELECT M.MEMBER_NAME, R.REVIEW_TEXT, DATE_FORMAT(R.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE AS M
JOIN REST_REVIEW AS R ON M.MEMBER_ID = R.MEMBER_ID
WHERE M.MEMBER_ID = (
SELECT R.MEMBER_ID
FROM REST_REVIEW AS R
GROUP BY R.MEMBER_ID
ORDER BY COUNT(*) DESC
LIMIT 1
)
ORDER BY REVIEW_DATE ASC, R.REVIEW_TEXT ASC;