Open robert-min opened 2 months ago
더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.
SELECT
ITEM_ID,
ITEM_NAME,
RARITY
FROM ITEM_INFO
WHERE ITEM_ID NOT IN (
SELECT
DISTINCT(PARENT_ITEM_ID)
FROM ITEM_TREE
WHERE PARENT_ITEM_ID IS NOT NULL
)
ORDER BY ITEM_ID DESC
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
-- 코드를 입력하세요
SELECT
A.CAR_ID,
ROUND(AVG(DIFF), 1) AS AVERAGE_DURATION
FROM (
SELECT
CAR_ID,
-- 날짜 차이는 해당 날짜까지 포함이라 + 1해야 함!!
DATEDIFF(END_DATE, START_DATE) + 1 AS DIFF
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
) AS A
GROUP BY A.CAR_ID
HAVING ROUND(AVG(DIFF), 1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
-- 코드를 입력하세요
# SELECT
# BOARD_ID,
# CONCAT("/home/grep/src/", BOARD_ID, "/", FILE_ID, FILE_NAME, FILE_EXT)
# FROM USED_GOODS_FILE
WITH pathviews AS (
SELECT
PATH,
SUM(VIEWS) AS TOTAL_VIEW
FROM (
SELECT
FILE_ID,
BOARD_ID,
CONCAT("/home/grep/src/", BOARD_ID, "/", FILE_ID, FILE_NAME, FILE_EXT) AS PATH
FROM USED_GOODS_FILE
) AS F
JOIN USED_GOODS_BOARD AS B
ON F.BOARD_ID = B.BOARD_ID
GROUP BY PATH
ORDER BY F.FILE_ID DESC
),
maxviews AS (
SELECT
MAX(TOTAL_VIEW) AS MAX_VIEW
FROM pathviews
)
SELECT
PATH
FROM pathviews
WHERE TOTAL_VIEW = (
SELECT
MAX(TOTAL_VIEW) AS MAX_VIEW
FROM pathviews
)
CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
WITH history AS (
SELECT
HISTORY_ID,
CAR_ID,
DATEDIFF(END_DATE, START_DATE) + 1 AS DIFF
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
),
fees AS (
SELECT
HISTORY_ID,
C.CAR_TYPE,
DIFF,
DIFF * DAILY_FEE AS FEE,
CASE
WHEN DIFF >= 90 THEN "90일 이상"
WHEN DIFF >= 30 THEN "30일 이상"
WHEN DIFF >= 7 THEN "7일 이상"
ELSE "NONE"
END AS DURATION_TYPE
FROM history AS h
JOIN CAR_RENTAL_COMPANY_CAR AS C
ON h.CAR_ID = C.CAR_ID
),
discounts AS (
SELECT
HISTORY_ID,
FEE,
DISCOUNT_RATE,
IFNULL((100 - DISCOUNT_RATE) / 100, 1) AS PURCHASE_RATE
FROM fees AS F
LEFT JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS P
ON F.CAR_TYPE = P.CAR_TYPE
AND F.DURATION_TYPE = P.DURATION_TYPE
WHERE F.CAR_TYPE = "트럭"
)
SELECT
HISTORY_ID,
FLOOR(FEE * PURCHASE_RATE) AS FEE
FROM discounts
ORDER BY FEE DESC, HISTORY_ID DESC
USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요.
WITH allmembers AS (
SELECT
COUNT(DISTINCT(USER_ID)) AS ALL_MEMBERS
FROM USER_INFO
WHERE YEAR(JOINED) = "2021"
)
SELECT
YEAR(SALES_DATE) AS YEAR,
MONTH(SALES_DATE) AS MONTH,
COUNT(DISTINCT(S.USER_ID)) AS PURCHASED_USERS,
ROUND(COUNT(DISTINCT(S.USER_ID)) / (SELECT ALL_MEMBERS FROM allmembers), 1) AS PUCHASED_RATIO
FROM ONLINE_SALE AS S
JOIN USER_INFO AS I
ON S.USER_ID = I.USER_ID
WHERE YEAR(JOINED) = "2021"
GROUP BY YEAR, MONTH
ORDER BY YEAR ASC, MONTH ASC
IFNULL : null 값 처리
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요