Group by 구문

SQL에서 사용되는 중요한 구문 중 하나.
데이터를 그룹화하여 집계 함수를 사용하여 통계 정보를 생성하는 데 사용된다.

위 사진은 주문 테이블을 전체 조회한 결과다.
이 중에서 cu_id(고객id)가 1인 경우에만 조회하려면 다음과 같이 쿼리를 작성할 수 있다.

select * from my_order where cu_id = 1;

그럼 아래 사진처럼 cu_id가 1인 행들만 조회가 된다.

여기서 만약, 고객별로 총 구매개수를 알고싶으면 어떻게 해야할까? cu_id(고객id) 컬럼을 그룹화하여 주문수량의 총 개수를 구하면 된다. 그럴때 사용하는 구문이 Group by절이다.

그룹함수는 집계함수와 같이 사용된다. 집계함수는 그룹화된 각 컬럼 데이터들의 통계를 내기 위해 사용되는 함수다.

  1. sum : 값을 모두 합산하여 반환한다.
  2. avg : 평균값을 반환한다.
  3. count : 열의 값을 모두 세어 반환한다.
  4. max : 가장 큰 값을 반환한다.

group by절과 집계함수를 같이 사용하여 고객별로 총 구매수량을 구하는 함수는 아래와 같다.

select cu_id, sum(order_quantity) from my_order group by cu_id;

총 구매수량을 알기 위해 sum 집계함수를 사용했다. 만약 총 구매수량이 아니라 주문 횟수를 구하고 싶다면 sum 대신 count를 넣어서 조회하면 된다.

profile
기록하는 사람

0개의 댓글