이번에 SQL에 대해 배운 김에 바로 프로그래머스에서 SQL문제를 풀어보았다.
평소 SQL문제는
흐린눈을 하며 넘겼는데 💦 이렇게 문제를 풀어보니 감격스러웠다.
CAR_RENTAL_COMPANY_CAR
테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요.
이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE로 지정해주세요.
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의 자리까지 표시
BOOK
테이블에서 2021년에 출판된 '인문'
카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID
), 출판일 (PUBLISHED_DATE
)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.
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(날짜 , 형식)
날짜를 지정한 형식으로 출력
구분기호 역할 %Y 4자리 년도 %y 2자리 년도 %M 긴 월(영문) %b 짧은 월(영문) %m 숫자 월 ( 두자리 ) %c 숫자 월(한자리는 한자리) %d 일자 (두자리) %e 일자(한자리) %W 긴 요일 이름(영문) %a 짧은 요일 이름(영문) %H 시간(24시간) %I 시간 (12시간) %i 분 %S 초 %Y-%m-%d yyyy-mm-dd %T hh:mm:SS %r hh:mm:ss AM,PM
PATIENT
테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요.
이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.
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;