본문 바로가기
문제풀이/SQL(My sql)

[문제풀이] 조건에 맞는 도서 리스트 출력하기/ 평균 일일 대여 요금 구하기

by kime2 2024. 1. 9.
출처

 

문제

BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.

 

문제에 대한 해석

1. 조건1: 2021년에 출판

2. 조건2: 인문' 카테고리

3. 조회:  도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)

4. 정렬: 출판일을 기준으로 오름차순

 

풀이(MYSQL)

select book_id, date_format(published_date,'%Y-%m-%d')
from book
where year(published_date) ='2021'
and category in ('인문')
order by published_date

작동순서

💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환

  1. FROM 절: book테이블에서
  2. WHERE 절published_date의 연도가 2021년도이고 카테고리가 인문인 데이터 필터링
  3. SELECT 절: book_id와 %Y-%m-%d식으로  published_date 조회
  4. ORDER BY 절: published_date 오름차순(오래된 날짜 먼저)

출처

 

문제

CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.

문제에 대한 해석

1. 조건: suv

2. 출력: 일일대여요금의 평균 + 첫번째 자리 반올림 ->AVERAGE_FEE

 

풀이(MYSQL)

select round(avg(daily_fee),0) as AVERAGE_FEE
from CAR_RENTAL_COMPANY_CAR
where car_type = 'suv'

작동순서

💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환

  1. FROM 절: CAR_RENTAL_COMPANY_CAR테이블에서
  2. WHERE 절: car_type이 suv인것만 필터링
  3. GROUP BY 절:
  4. HAVING 절:
  5. SELECT 절: daily_fee의 평균을 avg집계함수로 계산하고 round함수로 1째자리에서 반올림-> 보여지는 자릿수 0

배운점

  • 반올림 함수: around(숫자, 보여지는 자릿수)