[수업 목표]
select
from
where
group by
order by| 구분 | 설명 |
|---|---|
| SUM | 합계 |
| AVG | 평균 |
| COUNT | 데이터 갯수 |
| DISTINCT | 몇개의 값을 가지고 있는지 구할 때 |
| MIN | 최솟값 |
| MAX | 최댓값 |
사용 예시 (주문건수와, 주문 한 고객 수 구하기)
select count(1) count_of_orders,
count(distinct customer_id) count_of_customers
from food_orders
⬆️ COUNT에서는 * 컬럼명 대신 1 사용 가능

사용 예시 (상품 준비시간의 합계와 평균 구하기)
select sum(food_preparation_time) total_food_preparation_time,
avg(delivery_time) avg_food_preparation_time
from food_orders

사용 예시 (주문 가격의 최솟값, 최댓값 구하기)
select min(price) min_price,
max(price) max_price
from food_orders

예를들어 아래 구문을 활용한다고 해보자
select restaurant_name,
max(price) "최대 주문금액"
from food_orders

최대 주문 금액 1건만 나오게 된다. 그런데 group by를 구하면 전체 컬럼을 불러올 수 있다.
select restaurant_name,
max(price) "최대 주문금액"
from food_orders
group by restaurant_name

select cuisine_type,
sum(price) sum_of_price
from food_orders
group by cuisine_type
order by sum_of_price desc

내림차순(큰 수 부터)을 사용하기 위해서는 order by의 구문 맨 끝에 desc를 붙인다.
미작성시 자동으로 오름차순(작은 수 부터)이 적용된다.
select
from
where
group by
order by
위 순서대로 쿼리를 작성한다.
음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기
select cuisine_type "음식종류"
max(price) "높은 주문 금액"
min(price) "낮은 주문 금액"
from food_orders
group by cuisine type
order by min(price) desc

group by의 개념을 이해해서 기쁘다. 컬럼 전체를 묶어서 셀렉트 조건에 맞게 불러올 수 있는 점 !!
order by로 원하는 정렬을 할 수 있음을 알게 되었다.
엑셀의 필터기능을 제대로 sql화 할 수 있게 되었음