[Database] 그룹별 검색 - GROUP BY


그룹별 검색 - GROUP BY

  • 특정 속성 값이 같은 투플을 모아 그룹을 만들어 검색
  • GROUP BY 키워드를 사용
  • 기본 형식
SELECT [ ALL  DISTINCT ] 속성_리스트
FROM 테이블_리스트
[ WHERE 조건 ]
[ GROUP BY 속성_리스트 [ HAVING 조건 ] ]
[ ORDER BY 속성_리스트 [ ASC  DESC ] ] ;   
  • 예제에 사용할 데이터베이스

    • Orders 테이블


GROUP BY

  • 질의 : Orders 테이블에서 주문 제품별 (item) 수량의 합계를 검색하시오.
SELECT item, SUM( qty ) as 총주문수량
FROM orders
GROUP BY item;


  • [TIP]
    • 그룹별로 검색할 때, 그룹을 나누는 기준 속성을 SELECT 절에 작성하는 것이 좋다
    • SELECT 절에 작성하지 않아도 실행됨 ==> 어떤 그룹에 대한 검색 결과인지 확인하기 어렵다.


  • 질의 : 그룹을 위한 기준 속성(item)을 SELECT 절에 포함시키는 않은 경우
SELECT SUM( qty ) as 총주문수량
FROM orders
GROUP BY item;  


  • 질의 : Orders 테이블에서 주문한 제품(item)별로 주문건수와 가장 많이 주문한 개수(qty)를 검색하시오. (주문건수는 주문건수, 가장 많이 주문한 개수는 최대주문수로 표기)

    • 주문한 제품(item)별 : GROUP BY item
    • 제품별 주문건수 : COUNT( * )
    • 최대주문수 : MAX( qty )
SELECT item, COUNT( * ) AS 주문건수, MAX( qty ) AS 최대주문수
FROM orders
GROUP BY item;