SQL 오늘 강의 내용 정리 2
[목차]
1) 2주차 오늘 배울것
2)엑셀 대신 SQL로 한번에 계산하기 (SUM, AVERAGE, COUNT, MIN, MAX)
3) [실습] WHERE 절로 원하는 데이터 뽑고, 계산하기
4) GROUP BY로 범주별 연산 한 번에 끝내기
5) Query 결과를 정렬하여 업무에 바로 사용하기 (OREDER BY)
6) SQL 구조 마스터 - WHERE, GROUP BY, ORDER BY 로 완성되는 SQL 구조
*실습
1) 2주차 오늘 배울것
<오늘 내용 맛보기>
1. 두 컬럼의 합계 값을 뽑거나, 전체 데이터의 갯수를 구하기
2. 범주별로 계산하기
3.데이터를 가나다 순으로 정렬하기
2)엑셀 대신 SQL로 한번에 계산하기 (SUM, AVERAGE, COUNT, MIN, MAX)
1) 숫자 연산 기호를 SQL 에서도 사용하기
예시)
select food_preparation_time,
delivery_time,
food_preparation_time + delivery_time as total_time
from food_orders
결과)
숫자 연산 종류)
2) 기본 연산, 합계와 평균 구하기
- SQL 에서는 계산의 편의를 위해 함수를 제공하고 있다
사용방법은 엑셀과 유사하고, 유일하게 다른 점은 데이터의 범위가 아닌 계산할 '컬럼'을 적어 준다는 것이다. - 함수 종류
- 합계 : SUM(컬럼)
- 평균 : AVG(컬럼)
- 사용 예시
- select sum(food_preparation_time) total_food_preparation_time,
avg(delivery_time) avg_food_delivery_time
from food_orders
- select sum(food_preparation_time) total_food_preparation_time,
3) 전체 데이터의 갯수 구하기
- 함수 종류
- 데이터 갯수 : COUNT(컬럼) * 컬럼명 대신 1 혹은 ' * ' 사용가능
- 몇개의 값을 가지고 있는지 구할 때 : DISTINCT
- 예시
- 주문 건수와, 주문 한 고객 수 구하는 예시
- select count(1) count_of_orders,
count(distinct customer_id) count_of_customers
from food_orders
4) 데이터의 범위, 최솟값과 최댓값 구하기
- 함수 종류
- 최솟값 : MIN(컬럼)
- 최댓값 : MAX(컬럼)
- 사용 예시
- select min(price) min_price,
max(price) max_price
from food_orders
- select min(price) min_price,
- 결과
3) [실습] WHERE 절로 원하는 데이터 뽑고, 계산하기
- 문제 1 . 주문 금액이 30,000원 이상인 주문건의 갯수 구하기
- 문제 2. 한국 음식의 주문 당 편균 음식가격 구하기
4) GROUP BY로 범주별 연산 한 번에 끝내기
- 카테고리별로 숫자 연산을 간단하게 하기
- 음식 종류별로 평균 음식 가격을 구하기 위해 where 절을 사용해서 수십개의 쿼리를 작성하는건 비효율적
- Group by 기본 구조
- Group by 는 카테고리 컬럼 지정, 그리고 Group by 를 적어주는 것으로 적용 가능
- 기본 구조
- select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
- select 카테고리컬럼(원하는컬럼 아무거나),
- 사용 예시
- select cuisine_type,
sum(price) sum_of_price
from food_orders
group by cuisine_type
- select cuisine_type,
- [실습] Group by 를 이용하여 카테고리별 연산해보기
- 문제 1. 음식점별 주문 금액 최댓값 조회
- 문제 2. 결제 타입별 가장 최근 결제일 조회
5) Query 결과를 정렬하여 업무에 바로 사용하기 (OREDER BY)
<기본구조>
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)
<사용 예시>
*정렬의 종류*
[실습] Order by를 이용해서 데이터 정렬해보기
- 음식점별 주문 금액 최댓값 조회 < 최댓값 기준으로 내림차순 정령 >
- 고객을 이름을 오름차순으로 정렬하기
6) SQL 구조 마스터 - WHERE, GROUP BY, ORDER BY 로 완성되는 SQL 구조
기본 구조 순서 기억하기 !!
select
from
where
group by
order by
*실습 문제
음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문 금액순으로(내림차순) 정렬하기
*내가친코드*
SELECT cuisine_type,
min(price) as min_price,
max(price) as max_price
from food_orders fo
group by cuisine_type
order by min_price desc