1. 숫자 연산과 엑셀 함수

SELECT food_preparation_time,
       delivery_time,
       food_preparation_time + delivery_time AS total_time
FROM food_orders

이렇게 작성할 경우 컬럼이 food_preparation_time, delivery_time과 두 값이 더해진 total_time으로 나오게 됨
+, -, *, / 등을 이용해 연산이 가능함

SUM과 AVG

SELECT SUM(food_preparation_time) total_food_preparation_time,
       AVG(delivery_time) avg_delivery_time
FROM food_orders

이렇게 작성할 경우 total_food_preparation_time(food_preparation_time의 합)과 avg_delivery_time(delivery_time의 평균)이 나옴
SUM은 합, AVG는 평균

COUNT

SELECT COUNT(1) count_of_orders,
       COUNT(DISTINCT customer_id) count_of_customers
FROM food_orders

COUNT안에 1또는 ‘*‘이 들어갈 경우 데이터의 모든 개수를 세줌
DISTINCT는 중복을 없애주는 역할

MIN과 MAX

SELECT MIN(price) min_price,
       MAX(price) max_price
FROM food_orders

MIN은 최솟값, MAX는 최댓값


2. GROUP BY


음식 타입별 가격합 구하기

SELECT cuisine_type,
       SUM(price) sum_of_price
FROM food_orders
GROUP BY cuisine_type


레스토랑 이름별 최댓값 구하기

SELECT restaurant_name,
       MAX(price) max_price
FROM food_orders
GROUP BY restaurant_name


결제 타입별 최근 날짜 구하기

SELECT pay_type,
       MAX(date) recent_date
FROM payments
GROUP BY pay_type


GROUP BY를 이용하면 원하는 컬럼의 중복을 없앨 수 있음


3. ORDER BY

SELECT cuisine_type,
       SUM(price) sum_of_price
FROM food_orders
GROUP BY cuisine_type
ORDER BY SUM(price) DESC

ORDER BY로 정렬방법을 설정할 수 있다
ASC(오름차순)와 DESC(내림차순)이 있으며, 기본값은 ASC(오름차순)임

SELECT *
FROM customers
ORDER BY gender, name

이런 식으로 두 가지 이상의 조건으로 정렬 가능


4. SQL 구조

SELECT, FROM, WHERE, GROUP BY, ORDER BY 순으로 작성


5. SQL로 데이터 가공하기 (REPLACE, SUBSTRING, CONCAT)

REPLACE

SELECT restaurant_name "원래 상점명",
       REPLACE(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"
FROM food_orders
WHERE restaurant_name LIKE '%Blue Ribbon%'

사용 방법: REPLACE( 컬럼명, 현재 값, 바꿀 값)

SUBSTRING

SELECT addr "원래 주소",
       SUBSTR(addr, 1, 2) "시도"
FROM food_orders
WHERE addr LIKE '%서울특별시%'

SUBSTRING과 SUBSTR 중 편한걸로 작성 가능
사용 방법: SUBSTR( 컬럼명, 시작 위치, 글자 수)

CONCAT

SELECT restaurant_name "원래 이름",   
       addr "원래 주소",
       CONCAT('[', SUBSTRING(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
FROM food_orders
WHERE addr LIKE '%서울%'

CONCAT은 원하는 값을 붙혀서 나타내 주는 함수 사용 방법: CONCAT( 붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3, ···· )

태그: ,

카테고리:

업데이트: