본문 바로가기
Data/[스파르타 내일배움캠프]

[TIL]사전캠프 학습 2일차

by MIN_JOON 2024. 3. 26.
  • SQL을 사용한 연산
    • 컬럼 간 덧셈(+),뺄셈(-) 등과 같은 사칙연산 가능
    • 함수를 사용한 연산
      1. SUM(컬럼): 컬럼값들의 합을 계산
      2. AVG(컬럼): 컬럼값들의 평균을 계산
      3. 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