목록join (8)
Allen's 데이터 맛집

문제 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:/..

트럭 렌탈 비용 계산 문제 풀이 SELECT history_id, CASE WHEN DATEDIFF(end_date, start_date)+1 BETWEEN 7 AND 29 THEN ROUND(daily_fee * (DATEDIFF(end_date, start_date)+1) * ( SELECT (100 - DISCOUNT_RATE) / 100 FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE car_type = '트럭' AND duration_type = '7일 이상' ), 0) WHEN DATEDIFF(end_date, start_date)+1 BETWEEN 30 AND 89 THEN ROUND(daily_fee * (DATEDIFF(end_date, start_date)..
데이터베이스에서 정보를 가져오기 위해 여러 테이블을 결합하는 것은 중요한 작업 중 하나입니다. MySQL에서는 JOIN을 사용하여 두 개 이상의 테이블을 연결할 수 있습니다. 이 포스팅에선 3개 이상의 테이블을 JOIN하는 과정을 알아보겠습니다. 기본 JOIN 형태 두 테이블을 JOIN하는 기본 형태는 다음과 같습니다. SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name; 이제 3개의 테이블을 연결해보겠습니다. 예시: 주문, 제품, 고객 테이블 가장 흔한 시나리오 중 하나는 주문, 제품, 고객 정보를 가진 세 개의 테이블을 사용하는 것입니다. SELECT orders.order_id, products.product_nam..