[SQL] 프로그래머스 코딩 테스트 (LEVEL 5 : 상품을 구매한 회원 비율 구하기)
·
데이터베이스 DB/코딩테스트
💡 문제USER_INFO 테이블에는 회원의 기본 정보가, ONLINE_SALE 테이블에는 상품 판매 정보가 저장되어 있다.이때 2021년에 가입한 회원 중 상품을 구매한 회원 수와 구매한 회원의 비율을연도별·월별로 집계해야 한다.🧩 풀이1️⃣ 2021년에 가입한 회원 필터링USER_INFO에서 JOINED LIKE '2021%' 조건을 통해 2021년에 가입한 회원만 선택한다.2️⃣ 회원 구매 내역과 조인ONLINE_SALE과 USER_INFO를 USER_ID 기준으로 조인하여2021년 가입 회원 중 구매 이력이 있는 회원만 남긴다.3️⃣ 전체 회원 수 계산WITH 절 내부의 서브쿼리에서 2021년에 가입한 전체 회원 수를 구한다.이렇게 하면 집계 시 매번 COUNT를 반복 계산하지 않아도 된다.4️..
[SQL] 프로그래머스 코딩 테스트 (LEVEL 4 : 특정 기간 동안 대여 가능한 자동차 대여 비용 구하기)
·
데이터베이스 DB/코딩테스트
문제다음은 자동차 대여 회사의 세 가지 테이블을 활용한 문제CAR_RENTAL_COMPANY_CAR: 자동차 기본 정보 (CAR_ID, CAR_TYPE, DAILY_FEE 등)CAR_RENTAL_COMPANY_RENTAL_HISTORY: 자동차 대여 이력 (대여 시작일, 종료일)CAR_RENTAL_COMPANY_DISCOUNT_PLAN: 자동차 종류별 대여 기간별 할인 정책조건에 따라,2022년 11월 한 달 동안 대여가 가능한 ‘세단’ 또는 ‘SUV’ 차량 중30일간의 대여 금액이 50만원 이상, 200만원 미만인 차량을 조회해야 한다.풀이1. 할인 정책 필터링 (DISCOUNT_PLAN)30일 대여 조건에 해당하는 할인 정책만 추출한다.DURATION_TYPE = '30일 이상' 조건 사용.WITH ..
[SQL] 프로그래머스 코딩 테스트 (LEVEL 4 : 우유와 요거트가 담긴 장바구니)
·
데이터베이스 DB/코딩테스트
문제CART_PRODUCTS 테이블에는 장바구니에 담긴 상품 정보가 저장되어 있다.이때, ‘Milk’와 ‘Yogurt’를 동시에 구입한 장바구니의 ID를 조회하는 SQL문을 작성해야 한다.출력: CART_ID조건: ‘Milk’와 ‘Yogurt’가 모두 포함된 장바구니만 조회정렬: CART_ID 오름차순https://school.programmers.co.kr/learn/courses/30/lessons/62284 풀이기본 아이디어동일한 CART_ID 내에서 'Milk'와 'Yogurt'가 모두 존재하는지를 확인해야 한다.하나의 테이블에서 CART_ID를 기준으로 조건을 만족하는 행을 필터링해야 하므로 서브쿼리를 사용한다.서브쿼리 구성먼저 'Milk'를 구매한 장바구니(CART_ID) 목록을 구한다.이후 ..
[SQL] 프로그래머스 코딩 테스트를 통한 SQL 문법 정리(LEVEL 3-2)
·
데이터베이스 DB/코딩테스트
정리 방법해당 레벨에서 정답률 내림차순으로 풀이 후 기초적인 문법은 제외하고 잊기 쉬운 내용 위주로 정리.너무 쉬운 문제는 제외했습니다 Q) 대장균 크기에 따라 분류하기 2문제 개요 : 대장균 데이터(ECOLI_DATA)에서 개체의 크기(SIZE_OF_COLONY)를 기준으로 상위 25%씩 구간을 나누어 ‘CRITICAL’, ‘HIGH’, ‘MEDIUM’, ‘LOW’로 분류한 뒤 ID와 해당 분류명을 출력하는 문제.WITH CLASSIFIED AS ( SELECT ID, CASE NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) WHEN 1 THEN 'CRITICAL' WHEN 2 THEN 'HIGH' ..
[SQL] 프로그래머스 코딩 테스트를 통한 SQL 문법 정리(LEVEL 3-1)
·
데이터베이스 DB/코딩테스트
정리 방법해당 레벨에서 정답률 내림차순으로 풀이 후 기초적인 문법은 제외하고 잊기 쉬운 내용 위주로 정리.너무 쉬운 문제는 제외했습니다 A에는 있지만 B에는 없는 데이터만 남기기SELECT *FROM ALEFT JOIN B ON A.key = B.keyWHERE B.key IS NULLLEFT JOIN으로 A의 모든 데이터를 남기고B에 매칭되지 않은 행은 NULL 처리WHERE B.key IS NULL 조건으로 A에는 있고 B에는 없는 데이터만 추출순서를 기준으로 상위 N개 데이터만 추리기ORDER BY 기준컬럼 ASCLIMIT N순서를 기준으로 상위 N개 데이터만 추리기ORDER의 순서를 조작하여 원하는 방향성으로 사용 ORDER BY (없는 데이터로 순서 정렬)SELECT OU.ANIMAL_..
[SQL] 프로그래머스 코딩 테스트를 통한 SQL 문법 정리(LEVEL 2-2)
·
데이터베이스 DB/코딩테스트
정리 방법해당 레벨에서 정답률 내림차순으로 풀이 후 기초적인 문법은 제외하고 잊기 쉬운 내용 위주로 정리.너무 쉬운 문제는 제외했습니다 Q) 루시와 엘라 찾기SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKEFROM ANIMAL_INSWHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')ORDER BY ANIMAL_IDIN을 활용한 간소화Q) 가격대 별 상품 개수 구하기1만원 이상 ~ 2만원 미만 : 구간 1 ...SELECT PRICE DIV 10000 * 10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY PRI..