내일배움캠프 데이터분석의 본캠프는 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
마무리
: 늦은 만큼 부지런히 공부하자.
'Today I Learned' 카테고리의 다른 글
[내일배움캠프_데이터분석] 3주차 월요일 TIL _ Alias (0) | 2024.07.08 |
---|---|
[내일배움캠프_데이터분석] 2주차 금요일 TIL _ Like문, In문, REGEXP() (0) | 2024.07.05 |
[내일배움캠프_데이터분석] 2주차 목요일 TIL _ 데이터 리터러시 (0) | 2024.07.04 |
[내일배움캠프_데이터분석] 2주차 수요일 TIL _ Where절 (0) | 2024.07.03 |
[내일배움캠프_데이터분석] 2주차 화요일 TIL _ SubQuery (0) | 2024.07.02 |