단위를 나누어 숫자 계산을 해봅시다
1) 카테고리별로 숫자 연산을 간단하게 하기
음식 종류별로 평균 음식 가격을 구하기 위해 where 절을 사용해서 수십개의 쿼리를 작성하는 것은 너무 비효율적입니다. 이 문제를 Group by를 사용해서 어떻게 해결할 수 있을까요?
편의를 위해서 ‘원하는 단위로 (eg. 음식 종류별, 식당별) 나누는 것’ 을 수업에서는 앞으로 ‘카테고리별로’ 계산을 한다고 명명하겠습니다
여러번의 Query 없이, 카테고리를 지정하여 수식 함수로 연산을 할 수 있습니다.
이 때 사용되는 구문이 Group by 입니다.
2) Group by 기본 구조
Group by 는 카테고리 컬럼 지정, 그리고 Group by 를 적어주는 것으로 적용 가능합니다.
기본 구조
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
SQL 로 조회한 결과를 원하는 순서대로 정렬해봅시다
1) Query 결과는 항상 동일한 순서로 출력될까
지금까지 실습 결과와 제공해드린 예시의 출력 순서가 똑같았나요?
SQL 결과도 원하는 값 기준으로, 오름차순 혹은 내림차순으로 정렬할 수 있습니다.
오름차순 : 숫자가 점점 커지는 순서로 정렬
내림차순 : 숫자가 점점 작아지는 순서로 정렬
2) 정렬문 Order by 의 기본구조
Order by 는 카테고리 컬럼 지정, 그리고 Order by 를 적어주는 것으로 적용 가능합니다.
기본 구조
select 카테고리컬럼(원하는컬럼 아무거나),
sum(계산 컬럼),
from
group by 카테고리컬럼(원하는컬럼 아무거나)
order by 정렬을 원하는 컬럼 (카테고리컬럼(원하는컬럼 아무거나), sum(계산 컬럼) 둘 다 가능)
사용 예시 (음식 종류별 주문 금액 합계를 ‘주문 금액 합계’ 기준으로 오름차순 정렬)
[코드스니펫] Order By 예시
select cuisine_type,
sum(price) sum_of_price
from food_orders
group by cuisine_type
SQL 문의 가장 기초구조를 마스터해봅시다
1) 완성된 SQL 문의 기본 구조
드디어! SQL 문의 기본 구조를 마스터했습니다!
세부적으로 응용 할 구문은 많지만, 지금까지 배운 것이 뼈대가 되는 문법입니다!
이 문법만 알고있어도, 다른 사람이 쓴 SQL 문도 이해할 수 있습니다.
복습의 차원에서 구조를 한 번 보고갑시다 (순서를 꼭 잘 기억해주세요!)
select
from
where
group by
order by