On the journey of

[SolveSQL] 레스토랑 웨이터의 팁 분석,최근 올림픽이 개최된 도시 본문

코딩테스트/SQL

[SolveSQL] 레스토랑 웨이터의 팁 분석,최근 올림픽이 개최된 도시

dlrpskdi 2023. 6. 9. 17:08

1. 레스토랑 웨이터의 팁 분석 - https://solvesql.com/problems/tip-analysis/ 

 

solvesql

 

solvesql.com

Q. tips 테이블에는 식사 주문 금액, 팁, 결제자 성별, 요일, 시간대 등 음식점의 방문 고객들과 관련된 데이터가 들어있습니다. 음식점의 요일, 시간대 별 패턴을 분석해보고자 합니다. 구체적으로는 각 요일의 시간대별 평균 팁은 얼마인지, 평균 일행 수는 몇 명인지 확인하고자 합니다. 평균 팁과 평균 일행 수는 소수점 아래 셋째 자리에서 반올림 해 둘째 자리까지 출력하고, 결과 데이터가 요일, 시간대의 알파벳 순으로 정렬되도록 쿼리를 작성해주세요. 결과 데이터에는 아래 4개의 컬럼이 들어가야 합니다.

  • day - 요일
  • time - 시간대
  • avg_tip - 평균 팁
  • avg_size - 평균 일행 수

A.

##select에 요일,시간대,평균팁,평균일행수를 모두 두되 round를 활용해 반올림 조건 반영하기
select day, time, round(avg(tip),2) as avg_tip, 
                  round(avg(size),2) as avg_size
from tips
group by day, time

어렵지 않게 출력 완 :-)


2. 최근 올림픽이 개최된 도시 - https://solvesql.com/problems/olympic-cities/

 

solvesql

 

solvesql.com

Q. 역대 올림픽 정보 데이터셋은 역대 올림픽 경기와 관련된 데이터가 들어있는 테이블로 이루어져 있습니다. 그 중 games 테이블은 역대 올림픽 개최년도와 시즌, 도시 기록이 저장되어 있습니다.

2000년 이후 올림픽이 개최된 도시의 이름을 앞에서부터 3글자만 추출하는 쿼리를 작성해주세요. 쿼리 결과에는 올림픽 개최년도와 개최 도시만 출력되도록 하되, 도시 이름은 대문자로 출력되어야합니다. 쿼리 결과에는 아래 두 개의 컬럼이 있어야하고, 결과는 최근에 개최된 도시부터 내림차순으로 정렬되어있어야 합니다.

  • year - 올림픽 개최년도
  • city - 올림픽 개최도시 (3글자)

A. 이 문제에서 주의해야 할 건 SQL 환경에 따라 문자열 자르기 명령어가 다르다는 거다: substr (oracle) / left,right(mysql).
다만, SolveSQL는 Oracle 환경이므로 substr 활용해서 쿼리 작성하였다.

select year, upper(substr(city,1,3)) as city
##SUBSTR(str, pos, len): str에서 pos번째 위치에서부터 len개의 문자를 읽어들인다

from games
where year >=  2000 
order by year desc ;

결과 도출됨 ㅣ 무난하게 성공했다.