오답노트
date_format(컬럼명, '%Y-%m-%d')
round(avg(컬럼명), 0) ★ 소수점 첫 번째 자리에서 반올림 = 0
round(avg(컬럼명), 2) ★ 소수점 세 번째 자리에서 반올림 = 2
where 컬럼명 in ('AA', 'BB')
group by 컬럼명 ★ 함수를 썼다면 그룹바이절 필수
order by 컬럼명 desc , asc ★ 오더바이절 여러 개인 경우 쉼표(,) 추가
LV 4. 서울에 위치한 식당 목록 출력하기 <오답!>
Q. REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요.
이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고, 결과는 평균점수를 기준으로 내림차순 정렬해주시고,평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.
R.
풀이
1) FROM rest_info info INNER JOIN rest_review review ON info.rest_id=review.rest_id
2) ROUND(AVG(review.review_score),2) ★ 소수점 세 번째 자리에서 반올림 = 2 입력
3) GROUP BY info.rest_id ★ 함수를 썼다면 그룹바이절 잊지 말자
4) ORDER BY score DESC, info.favorites DESC
A.
SELECT
info.REST_ID,
info.REST_NAME,
info.FOOD_TYPE,
info.FAVORITES,
info.ADDRESS,
ROUND(AVG(review.REVIEW_SCORE),2) AS SCORE
FROM REST_INFO info INNER JOIN REST_REVIEW review ON info.REST_ID = review.REST_ID
WHERE info.ADDRESS LIKE '서울%'
GROUP BY info.REST_ID
ORDER BY SCORE DESC,
info.FAVORITES DESC
LV 1. 과일로 만든 아이스크림 고르기
Q. 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요.
select f.flavor
from first_half f inner join icecream_info i on f.flavor=i.flavor
where f.total_order>3000 and i.ingredient_type='fruit_based'
order by f.total_order desc
LV 1. 평균 일일 대여 요금 구하기
Q. CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.
풀이
소수 첫 번째 자리 반올림 ROUND(AVG(컬럼명), 0)
select round(avg(daily_fee), 0) average_fee
from car_rental_company_car
where car_type = 'SUV'
LV 1. 흉부외과 또는 일반외과 의사 목록 출력하기 <오답!>
Q. DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
풀이
1) 결과에서 date를 "YYYY-MM-DD" 형태로 요구함 date_format(컬럼명, '%Y-%m-%d')
2) 조건이 여러 개인 경우, 여러 개의 값 중 하나라도 맞는지 확인할 때 IN이 제일 편힘 where 컬럼명 in ('AA', 'BB')
where mcdp_cd = 'CS' or mcdp_cd='GS' 를 길게 쓰는 것 보다 나음
3) 내림차순 오름차순 order by 컬럼명 desc asc
select dr_name,
dr_id,
mcdp_cd,
date_format(hire_ymd, '%Y-%m-%d') hire_ymd
from doctor
where mcdp_cd in ('CS', 'GS')
order by hire_ymd desc,
dr_name asc
LV 1. 강원도에 위치한 생산공장 목록 출력하기
Q. FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.
select factory_id,
factory_name,
address
from food_factory
where address like "강원도%"
order by factory_id asc
풀어보러 가기 ☞ 여기 클릭
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

'┤내일배움캠프├ > SQL' 카테고리의 다른 글
[연습] programmers SQL 고득점 키트(SELECT, 11~15) (0) | 2025.05.07 |
---|---|
[연습] programmers SQL 고득점 키트(SELECT, 6~10) (1) | 2025.05.02 |
[연습] SQL Lv.1~3 (0) | 2025.05.01 |
SQL 5주차④(date) (0) | 2025.04.29 |
SQL 5주차③(rank, sum) (0) | 2025.04.29 |