- SQL을 사용한 연산
- 컬럼 간 덧셈(+),뺄셈(-) 등과 같은 사칙연산 가능
- 함수를 사용한 연산
- SUM(컬럼): 컬럼값들의 합을 계산
- AVG(컬럼): 컬럼값들의 평균을 계산
- COUNT(컬럼): 컬럼 내 데이터의 갯수를 계산
- GROUP BY를 통해 카테고리별 연산도 가능
- Query 결과를 정렬하는 방법
- ORDER BY: 기준으로 하는 컬럼을 통해 정렬(ASC는 오름차순#생략가능, DESC는 내림차순)
#식당의 타입별 평균 매출 구하기
SELECT AVG(SALES) #AVG를 이용해 평균매출 계산
FROM FOOD_ORDERS
GROUP BY CUISINE_TYPES #AVG의 카테고리를 식당의 타입별로
ORDER BY 1 DESC #해당 평균값의 내림차순으로 정리
- SQL을 이용한 문자열 가공
- REPLACE(바꿀 컬럼, 현재 값, 바꿀 값): 현재 값을 바꿀 값으로 변경
- SUBSTR(조회할 컬럼, 시작 위치, 가져올 문자열 수): 해당 컬럼의 시작 위치에서 일정 문자열을 가져옴
- CONCAT(값1, 값2, .....): 해당 값들을 붙여서 나타냄
- 조건에 따라 가공하기
- IF(조건, 조건 충족할 때 출력값, 조건을 충족하지 않을 때 출력값): 한 가지 조건을 통해 출력
- 여러 조건을 지정하는 경우
CASE WHEN조건 1 THEN 값(수식도 가능)1
WHEN 조건 2 THEN 값2
ELSE 값3
END '컬럼명'
#지역과 배달시간 기준으로 배달수수료 구하기
#지역 기준: 서울일 경우 수수료 계산*1.1, 기타 지역은 없음
#시간 기준: 25분 초과시 음식가격의 5%, 30분 초과시 음식가격의 10%
SELECT
RESTAURANT_NAME,
ORDER_ID,
DELIVERY_TIME,
PRICE,
ADDRESS,
CASE WHEN DELIVERY_TIME > 25 AND DELIVERY_TIME <=30 THEN PRICE*1.05*(IF(ADDRESS LIKE '%서울%', 1.1 1))
WHEN DELIVERY_TIME < 30 THEN PRICE*1.1*(IF(ADDRESS LIKE '%서울%', 1.1, 1))
ELSE 0
END '수수료'
FROM FOOD_ORDERS
내일부터는 조금 더 속도를 내서 진행해야겠다.
점점 할게 많아지는 느낌:)
'Data > [스파르타 내일배움캠프]' 카테고리의 다른 글
[TIL]사전캠프 학습 5일차 (4) | 2024.03.29 |
---|---|
[TIL]사전캠프 학습 4일차 (0) | 2024.03.28 |
[TIL]사전캠프 학습 3일차 (2) | 2024.03.27 |
[TIL]사전캠프 학습 1일차 (2) | 2024.03.25 |
스타터 노트 (2) | 2024.03.25 |