SQL Test

박무연·2023년 4월 5일
0

🔵SQL

목록 보기
15/15
post-thumbnail

- 문제

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요.

출처 : programmers >
GROUP BY >
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

- 풀이

SELECT CAR_ID, 
    case when max(end_date) >= '2022-10-16' then '대여중'
    else '대여 가능' end AVAILABILITY
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where start_date <= '2022-10-16'
group by CAR_ID
order by CAR_ID desc

- 문제

FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
출처 : programmers > GROUP BY >
식품분류별 가장 비싼 식품의 정보 조회하기

- 풀이

with
temp as
(
SELECT CATEGORY, max(PRICE) as MAX_PRICE
    from FOOD_PRODUCT
    where category in ('과자', '국', '김치', '식용유')
    group by CATEGORY
)
select f.CATEGORY, MAX_PRICE, f.PRODUCT_NAME
    from food_product f ,temp t
    where price = max_price and t.category = f.category
    order by max_price DESC
  • max 집계함수로는 다 안묶인다
  • 묶어줄수 있는 무엇인가가 필요!!!!
profile
Easy day!

0개의 댓글