Development/SQL

LV.4 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로..
LV.3 헤비 유저가 소유한 장소문제이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.해설추출해야할 것 id, name, host_id조건 공간을 2개 이상 소유한 호스트 건정렬 X 1. host_id로 GROUP BY HAVING으로 2건 이상인 건들만 가져온다2. 해당 절에서 host_id만 추출하여 서브쿼리로 만든다3. 메인쿼리에서 host_id에 해당하는 건들만 가져온다 이를 구현한 코드는 아래와 같다SELECT * FROM PlacesWHERE host_id in (SELECT host_id FROM PlacesGROUP BY host_idHAVING COUNT(id) >= 2) Goodht..
LV.2 중성화 여부 파악하기 문제 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요. 해설 추출해야할 것 animal_id, name, 중성화 여부 조건 "Neutered"나 Spayed가 포함된 중성화 개체는 "O"표시 정렬 animal_id ASC 1. SELECT 절에 CASE WHEN 절을 쓰면된다 2. 조건을 걸 때 문자열 일치가 아닌 포함 여부이기 때문에 LIKE "%string%"을 쓰는 것을 잊지말자 3. animal..
LV.4 우유와 요거트가 담긴 장바구니 문제 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 해설 추출해야할 것 cart_id 조건 한 카트에 우유와 요거트가 동시에 담긴 건 정렬 cart_id ASC 1. 예외를 먼저 생각해보자. 장바구니에 정직하게 Milk와 Yogurt가 하나씩 담겨있진 않을 것이다. - Milk, Milk, Yogurt의 조합이 충분히 가능하다 2. 어쨌든 우유와 요거트가 몇 건이든 담겨있기만 하면되니까 카트별로 중복 아이템 제거를 해도 문제가 없다 3. DISTINCT cart_..
LV.3 헤비 유저가 소유한 장소 문제 이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요. 해설 추출해야할 것 id, name, host_id 조건 공간을 2개 이상 소유한 호스트 건 정렬 X 1. host_id로 GROUP BY HAVING으로 2건 이상인 건들만 가져온다 2. 해당 절에서 host_id만 추출하여 서브쿼리로 만든다 2. 메인쿼리에서 host_id에 해당하는 건들만 가져온다 이를 구현한 코드는 아래와 같다 SELECT * FROM Places WHERE host_id in (SELECT host_id FROM Places GROUP BY host_id HAVING COUNT(id) ..
LV1. 자동차 대여 기록에서 장기/단기 대여 구분하기 문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요. 해설 추출해야할 것 history_id, car_id, start_date, end_date, rent_type 조건 start_date LIKE "%2022-09%" 정렬 history_id DESC 1. 2022년 09월에 대여 시작한 행을 불러온다 2. CASE WHEN ~ 절과 DA..
LV.2 재구매가 일어난 상품과 회원 리스트 구하기 문제 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. 해설 추출해야할 것 user_id, product_id 조건 재구매 회원 정렬 user_id , product_id DESC 1. 회원별, 제품별 구매 횟수를 COUNT하기 위해 GROUP BY를 해준다 2. HAVING으로 집계된 횟수가 2회 이상인 row만 가져온다 3. 알맞게 정렬한다 이를 구현한 코드는 아래와 같다 SELECT user_id, product_id FR..
LV.1 과일로 만든 아이스크림 고르기 문제 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. 해설 추출해야할 것 flavor 조건 total_order > 3000, ingredient_type = "fruit_based" 정렬 total_order DESC 1. ingredient_type과 total_order의 조건식을 적기 위해서 JOIN한다 2. 조건식을 적어주고 정렬한다 이를 구현한 코드는 아래와 같다 SELECT F.flavor FROM First_half AS F LEFT OUTER JOIN Icecream_info AS I ON F.flavor = I.flavor WHERE to..
bat_huni
'Development/SQL' 카테고리의 글 목록