내일배움캠프 데이터분석의 본캠프는 2024.06.24. 시작하였으나, 한국토지신탁 근무로 인해 2주차부터 캠프에 합류하였다.

 

A. 어떤 문제가 있었는지

: 처음보는 언어로 과제를 진행할 수 없었다.

 

B. 내가 시도해본 것들

: 스파르타에서 제공하는 SQL 관련 강의를 들으며 MySQL 설치부터 시작하여 기초적인 문법을 학습하였다.

 

C. 어떻게 해결했는지

:  SQL에 익숙해지고자 강의에서 제공하는 실습문제와 숙제를 풀었다.

 

D. 무엇을 새롭게 알았는지

: SQL 기본 문법 및 데이터 조회/필터링, 데이터 연산 및 정렬 등의 방법을 알게 되었다.

 

- SELECT 문을 사용하여 데이터를 조회

- WHERE 절을 이용하여 필터링하는 방법을 이해하고 활용

- SQL을 활용하여 숫자계산 및 문자열 다듬기

- 퀴리 결과를 원하는 순서대로 정렬

 

Q. 상품 시간이 20~30분 사이인, 한국 음식점의 식당명과 고객번호 조회하기

SELECT restaurant_name '식당명', customer_id '고객번호'
FROM food_orders
WHERE food_preparation_time between 20 AND 30
AND cuisine_type = 'Korean'

 

Q. 음식 종류별 가장 높은 주문금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로(내림차순) 정렬하기

SELECT cuisine_type,MAX(price),MIN(price)
FROM food_orders
GROUP BY cuisine_type
ORDER BY price desc

 

Q. 다음의 조건으로 배달시간이 늦었는지 판단하라.

조건
주중 : 25분 이상
주말 : 30분 이상
 SQL 문의 기본 구조로 시작
조건을 여러번 적용할 때 if, case 문 중 어떤 것을 이용할지 결정
조건에 ‘주중, 주말’ 조건과 ‘배달시간’ 조건을 동시에 줄 때 사용 할 논리연산자 결정

 

1. CASE문 활용

SELECT day_of_the_week "주중구분", delivery_time AS "배달시간",
	   CASE WHEN day_of_the_week='Weekday' AND delivery_time>=25 THEN "Late"
			WHEN day_of_the_week='Weekday' AND delivery_time<25 THEN "On Time" 
			WHEN day_of_the_week='Weekend' AND delivery_time>=30 THEN "Late"
			WHEN day_of_the_week='Weekend' AND delivery_time<30 THEN "On Time" 
	   END "지연여부"
FROM food_orders

 

2. IF문 활용

SELECT day_of_the_week "주중구분", delivery_time "배달시간",
	   IF(day_of_the_week ='Weekday'AND delivery_time>=25, "Late",
	      IF(day_of_the_week='Weekend'AND delivery_time>=30,"Late","On Time"))"배달지연여부"
FROM food_orders

 

마무리

: 늦은 만큼 부지런히 공부하자.

+ Recent posts