이번에 SQL에 대해 배운 김에 바로 프로그래머스에서 SQL문제를 풀어보았다.

평소 SQL문제는 흐린눈을 하며 넘겼는데 💦 이렇게 문제를 풀어보니 감격스러웠다.


Q1. 평균 일일 대여 요금 구하기


문제

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

✍️ Solution

SELECT  ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';

💡 ROUND() 함수

ROUND(, 자릿수)
  • 자릿수가 N : 소숫점 아래 N째 자리까지 반올림하여 표시
  • 자릿수가 -N : 반올림하여 10의 N승 자리까지 표시
  • 자릿수가 0 : 반올림하여 1의 자리까지 표시

Q2. 조건에 맞는 도서 리스트 출력하기


문제

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

✍️ Solution

SELECT BOOK_ID,
DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK
WHERE YEAR(PUBLISHED_DATE) = 2021 AND 
CATEGORY = '인문'
ORDER BY PUBLISHED_DATE;

💡 DATE_FORMAT(날짜 , 형식)


날짜를 지정한 형식으로 출력

 구분기호역할
%Y4자리 년도
%y2자리 년도
%M긴 월(영문)
%b짧은 월(영문)
%m숫자 월 ( 두자리 )
%c숫자 월(한자리는 한자리)
%d일자 (두자리)
%e일자(한자리)
%W긴 요일 이름(영문)
%a짧은 요일 이름(영문)
%H시간(24시간)
%I시간 (12시간)
%i
%S
%Y-%m-%dyyyy-mm-dd
%Thh:mm:SS
%rhh:mm:ss AM,PM

Q3. 12세 이하인 여자 환자 목록 출력하기


문제

PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요.
이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.

✍️ Solution

SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO, 'NONE')AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME;
profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글