1 분 소요

1. 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (Level 3)

문제

풀이

SELECT CAR_ID,
    CASE
        WHEN CAR_ID IN (
            SELECT CAR_ID
            FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
            WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE
        ) THEN '대여중'
        ELSE '대여 가능'
    END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
  • CASE문을 사용
  • 서브쿼리를 사용해 2022-10-06일이 대여 시작일자(포함)와 대여 종료일자(포함) 사이에 있는 CAR_ID를 구한다.
    • BETWEEN ~ AND 사용
  • GROUP BY를 통해 CAR_ID별로 위에서 구한 조건에 해당하는 CAR_ID라면 ‘대여중’으로, 그렇지 않으면 ‘대여 가능’으로 표시한 후
    AVAILABILITY라는 컬럼에 값을 출력한다.
  • ORDER BY를 이용해 CAR_ID를 기준으로 내림차순 정렬한다.

참고

2. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (Level 2)

문제

풀이

select car_type, count(car_type)
from CAR_RENTAL_COMPANY_CAR
where options like '%통풍시트%' or options like '%열선시트%' or options like '%가죽시트%'
group by car_type
order by car_type asc
  • 특정 문자 또는 문자열을 포함하고 있는 값을 검색하고 싶을 때 LIKE 사용

참고

3. 성분으로 구분한 아이스크림 총 주문량 (Level 2)

문제

풀이

select ingredient_type, sum(total_order) as total_order
from FIRST_HALF F
    inner join ICECREAM_INFO I
    on F.flavor = I.flavor
group by ingredient_type
order by total_order asc
  1. 상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총 주문량을 조회하기
    • 상반기 동안 아이스크림 가게의 주문 정보를 담은 테이블 FIRST_HALF에는 아이스크림 성분 타입에 대한 정보가 없기 때문에 성분 타입을 가지고 있는 ICECREAM_INFO 테이블과 조인해줘야 한다.
    • 이 때, JOIN은 INNER JOIN을 사용해 두 테이브에 공통적으로 조인될 조건을 ON을 통해 걸어준다.
      (FLAVORFIRST_HALF 테이블의 기본키이고, ICECREAM_INFO 테이블의 FLAVORFIRST_HALF 테이블의 외래키인 점을 이용한다.)
  2. 테이블 명 옆에 별칭을 사용해 쿼리문을 줄여줄 수 있다.
    • JOIN 할 때 동일한 컬럼명이 있다면 꼭 테이블 이름(또는 별칭).컬럼명 형식으로 표기해야 한다.
  3. 성분 타입에 대한 아이스크림의 총 주문량을 구하기
    • GROUP BY와 집계함수 SUM을 통해 성분 타입별 총 주문량을 구해준다.
  4. 정렬
    • ORDER BY를 통해 오름차순 정렬

참고

4. 진료과별 총 예약 횟수 출력하기 (Level 2)

문제

풀이

select MCDP_CD as '진료과코드', count(APNT_NO) as '5월예약건수'
from APPOINTMENT
where APNT_YMD like '2022-05-%'
group by MCDP_CD
order by count(APNT_NO), MCDP_CD asc
  • 5월에 예약한 데이터만 출력해야 하므로 LIKE 키워드를 사용한다.

가격대 별 상품 개수 구하기 (Level 2)

문제

풀이

select truncate(price, -4) as PRICE_GROUP, count(product_id) as PRODUCTS
from PRODUCT
group by PRICE_GROUP
order by PRICE_GROUP asc

image

참고



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: