업무에 파이썬 활용할 줄 알기
SQL 3주차 본문
3-1. 오늘 배울 것
3-2. 업무에 필요한 문자 포맷이 다를 때, SQL로 가공하기 (REPLACE, SUBSTRING, CONCAT)
3-3. [실습] 문자 데이터를 바꾸고, GROUP BY 사용하기
3-4. 조건에 따라 포맷을 다르게 변경해야한다면 (IF, CASE)
3-5. [실습] SQL로 간단한 User Segmentation 해보기
3-6. [실습] 조건문으로 서로 다른 식을 적용한 수수료 구해보기
3-7. SQL문에 문제가 없는 것 같은데 왜 오류가 나나요? (Data Type 오
3-8. 3주차 끝 & 숙제 안내
숙제 배달시간이 늦었는지 판단하는 값 만들기
3-1. 오늘 배울 것
Query 결과를 업무에 바로 사용할 수 있도록 문자(워딩)를 다듬는다
수치계산 및 문자를 다듬을 때, 조건별로 다르게 적용한다
수치계산과 문자 연산이 되지 않는 경우를 배우고, 에러를 수정한다
3-2. 업무에 필요한 문자 포맷이 다를 때, SQL로 가공하기 (REPLACE, SUBSTRING, CONCAT)
일괄 수정
전체가 아니라 필요한 문자만 가져오기
여러가지 컬럼을 조합
케이스1) 특정 문자를 다른 문자로 바꾸기
케이스2) 원하는 문자만 남기기
케이스4) 여러 컬럼의 문자를 합치기
3-3. [실습] 문자 데이터를 바꾸고, GROUP BY 사용하기
1) [실습] 서울 지역의 음식 타입별 평균 음식 주문금액 구하기 (출력: '서울', '타입', '평균 금액')
group by 뒤에 첫번째 컬럼과 두번째 컬럼별로 묶는거에 대해 1, 2 와 같이 숫자로만 나타낼 수도 있다
이모티콘????
2) [실습] 이메일 도메인별 고객 수와 평균 연령 구하기
3) [실습] '[지역(시도)] 음식점이름 (음식종류)' 컬럼을 만들고, 총 주문건수 구하기
3-4. 조건에 따라 포맷을 다르게 변경해야한다면 (IF, CASE)
1) IF문 기초: 조건에 따라 다른 방법을 적용하고 싶을 때
2) Case문 기초: 조건을 여러가지 지정하고 싶을 때
남는 조건이 없으면 else 생략이 가능함
3-5. [실습] SQL로 간단한 User Segmentation 해보기
1) [실습] 10세 이상, 30세 미만의 고객의 나이와 성별로 그룹 나누기 (이름도 같이 출력)
주의사항
2) [실습] 음식 단가, 음식 종류 별로 음식점 그룹 나누기
음식단가별, 음식종류별 2가지 조건이 혼합되어 음식종류의 기타에 대해 단순 else를 적용할 수 없음.
→ not in (포함하지 않는다) 구문을 써줌으로서 해결
3-6. [실습] 조건문으로 서로 다른 식을 적용한 수수료 구해보기
1) [실습] 지역과 배달시간을 기반으로 배달수수료 구하기 (식당 이름, 주문 번호 함께 출력)
(지역 : 서울, 기타 - 서울일 때는 수수료 계산 * 1.1, 기타일 때는 곱하는 값 없음
시간 : 25분, 30분 - 25분 초과하면 음식 가격의 5%, 30분 초과하면 음식 가격의 10%)
식당 이름, 주문 번호, 배달 수수료(지역+시간)
My solution
뭐가 문제지?
아 select 구문에 컬럼 정보 사이에 컴마 안찍어줬다
Solution
이 솔루션 이해가 좀 안간다
기타이더라도 배달시간이 25분, 30분 초과면 수수료 받는거아닌가? >> 질문방에 질문올리자
이게 맞는거 아닌가?
2) [실습] 주문 시기와 음식 수를 기반으로 배달할증료 구하기
(주문 시기 : 평일 기본료 = 3000 / 주말 기본료 = 3500
음식 수 : 3개 이하이면 할증 없음 / 3개 초과이면 기본료 * 1.2)
Solution
3-7. SQL문에 문제가 없는 것 같은데 왜 오류가 나나요? (Data Type 오류 해결하기)
--숫자로 변경
cast(if(rating='Not given', '1', rating) as decimal)
--문자로 변경
concat(restaurant_name, '-', cast(order_id as char))
3-8. 3주차 끝 & 숙제 안내
숙제 배달시간이 늦었는지 판단하는 값 만들기
My solution
Solution
'SQL > [스파르타] 엑셀보다 쉽고 빠른 SQL' 카테고리의 다른 글
SQL 5주차 (0) | 2023.11.23 |
---|---|
SQL 4주차 (0) | 2023.11.22 |
SQL 2주차 (0) | 2023.11.14 |