본문 바로가기

┤내일배움캠프├/SQL

[연습] programmers SQL 고득점 키트(SELECT, 1~5)

728x90

오답노트

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

 

 

728x90

google.com, pub-9332256070510669, DIRECT,f08c47fec0942fa0