목록SQL (41)
Allen's 데이터 맛집
문제 풀이 -- 리뷰를 가장 많이 작성한 회원 찾기 WITH rm AS ( SELECT member_id, COUNT(member_id) AS count FROM rest_review GROUP BY member_id ORDER BY count DESC LIMIT 1 ) -- 가장 많은 리뷰를 작성한 회원의 리뷰 조회 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 r ON m.member_id = r.member_id JOIN rm ON r.member_id = rm.member_id ORDER BY review_d..
문제 풀이 -- 온라인 판매 데이터 SELECT DATE_FORMAT(sales_date, '%Y-%m-%d') AS sales_date, product_id, user_id, sales_amount FROM online_sale WHERE sales_date BETWEEN '2022-03-01' AND '2022-03-31' UNION ALL -- 오프라인 판매 데이터 SELECT DATE_FORMAT(sales_date, '%Y-%m-%d') AS sales_date, product_id, NULL AS user_id, sales_amount FROM offline_sale WHERE sales_date BETWEEN '2022-03-01' AND '2022-03-31' ORDER BY sales_d..
문제 WITH RECURSIVE hours AS ( SELECT 0 AS num UNION ALL SELECT num + 1 FROM hours WHERE num < 23 ) SELECT hours.num AS hour, COUNT(a0.animal_id) AS count FROM hours LEFT JOIN animal_outs AS a0 ON EXTRACT(HOUR FROM a0.datetime) = hours.num GROUP BY hours.num ORDER BY hour; 풀이 1. WITH RECURSIVE 구문을 사용하여 0부터 23까지의 숫자를 가지는 hours 테이블을 생성합니다. 이를 num이라는 칼럼으로 정의합니다. 2. animal_outs 테이블에서 동물이 나간 날짜 및 시간 정보..
문제 풀이 1. CAR_RENTAL_COMPANY_CAR, CAR_RENTAL_COMPANY_RENTAL_HISTORY, CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블을 조인하여 차량, 렌탈 이력, 할인 계획과 관련된 정보를 가져옵니다. 2. 세단 또는 SUV 차종이면서 30일 렌탈에 해당하는 할인 계획을 가져옵니다. 3. ROUND 함수를 사용하여 할인을 적용한 30일 렌탈 비용을 계산하고 FEE 컬럼에 저장합니다. 4. 렌탈 이력이 있으면서 최대 종료일이 "2022-11-01" 이하이며, 비용이 500,000에서 2,000,000 사이인 경우를 선택합니다. 5. 그룹 별로 렌탈 비용이 높은 순서로 정렬하며, 동일한 비용의 경우 차종과 차량 ID를 기준으로 정렬합니다. https:/..