본문 바로가기

SQL문

SQL문 테이블 그룹 나누는 방법

반응형

이전 글에서는 집약에서 대해서 확인을 하여 보았습니다. 

 

2022.07.20 - [SQL문] - SQL문 논리연산자 2편 & 집약

2022.07.21 - [SQL문] - SQL문 집약 2편

 

이번 글에서는 GROUP BY 구를 이용을 해서  테이블을  그룹으로 나누는 방법에 대해서 확인을 하여 보도록 하겠습니다. 이전  글에서 배운 집약함수는  NULL 포함 여부 , 중복값 여부를 계산을 해서   전체 테이블에 대한  집약을  계산을 하였습니다. 

 

하지만  GROUP BY 를  이용을 하시면   날짜별 ,  카테고리별  등으로  나누어서 확인을 할 수가 있습니다.  그럼 어떻게 이용을 하는지  구문을  확인을 하여 보도록 하겠습니다. 

 

SELECT  < 열명>,<열명2>,<열명3> FROM < 테이블명>  GROUP BY  < 열명1>, <열명2>  ;

 

이런 형식으로 작성을 하시면 됩니다.  예을 들어서  테이블에   상품을  입력한 데이터가 있다고 가정을 합니다. 

 

M_CLASS 열에  상품 카테고리가 입력이 되었있다면   각  상품 종류에 따라서  행수를 개산을 하는  구문을 작성을 하고자  한다면  아래와 같이  작성을 하시면 됩니다. 

 

SELECT  M_CLASS ,COUNT(*)  FROM  MyTest01  GROUP BY M_CLASS   ;

 

이렇게 작성을 하고 실행을 하면 아래와 같은  결과를 얻을 수가 있습니다.

 

M_CLASS  | COUNT

PC부품       |   5

사무용품     |   10

기타용퓸     |   100

 

이렇게  각   카테고리별로  집계을 해서   행수를 계산한 결과를 얻을 수가 있습니다. 만약 GROUP BY 구를 이용을 하지 않았다면  전체 테이블에 대해서  집약을 하기 때문에   115 을 확인을 할 수가 있을 것입니다. 

 

GROUP BY를 구를 잘 이용을 하시면  좀더  자세한  데이터를  추출을 할 수가 있습니다. 해당 구문을  이용을 할 때는  규칙을 잘 지켜서  작성을 해야 합니다. 

 

 

1.SELECT  >  2. FROM  > 3.WHERE  >  4.GROUP BY  ;

 

이런 규칙을 받드시 준수를 해서 작성을 해야 합니다.  이 순서를 무시를 하시면 SQL은 정상적으로 동작을 하지 않고 오류가 발생을 합니다.

 


SQL 문을  이용을 할 때는  NULL 데이터가 입력이 되어 있는 경우에 어떻게 처리가 되는지 잘 알아야  원하는 결과를  얻을 수가 있습니다. 

 

아래와 같이  구문을 작성을 하였을 경우에 

 

SELECT  M_CLASS ,COUNT(*)  FROM  MyTest01  GROUP BY M_CLASS   ;

 

 

M_CLASS 열에  NULL을 포함을 하여 보도록 하겠습니다. 그리고  동일하게  실행을 하여 보도록 하겠습니다. 

 

M_CLASS  | COUNT

PC부품       |   5

사무용품     |   10

기타용퓸     |   100

NULL          |    5

 

결과를 확인을 하여 보시면   NULL도  별도  그룹으로  분류가 되어서 계산을 하게 됩니다. 

 


GROUP BY 에 WHERE 구를 이용을 하여 보자!

where구를 이용을 하시면 좀더  원하는 결과를  얻을 수가 있습니다.  앞서 이야기 하였지만   where 구 뒤에  GROUP BY 가 작성이 되어야 합니다. 

 

어떻게 작성을 하는지  확인을 하여 보도록 하겠습니다. 

 

SELECT  m_buy,COUNT(*)  FROM  MyTest01  where M_CLASS  = '사무용품' GROUP BY m_buy;

 

이렇게 작성을 하고 실행을 하여 보면   먼저 M_CLASS 열에서  '사무용품' 과 동일한  행만  데이터를 추출을 하고  데이터에서  m_buy 열에서 그룹화에서  COUNT 집약함수를  이용을 해서 행수를 계산을 합니다.

 

실행 결과는 아래와 같습니다.

 

m_buy        | COUNT

1000            |   5

5000            |   15

 

이런 결과를   얻을 수가 있습니다. 

 

구문이 동작을 하는 순서를  나열을 하여 보면 아래와 같습니다. 

 

FROM   >  where  > GROUP BY  > SELECT   

 

이렇게 동작을 하는 것을 확인을 할 수가 있습니다. 


이번 글에서는  여기까지  알아보도록 하겠습니다.  다음 글에서는 GROUP BY 구를 이용을 할 때 자주하는  실수에 대해서 확인을 하여 보도록 하겠습니다. 

반응형

'SQL문' 카테고리의 다른 글

SQL 문 트랜잭션 1편  (0) 2022.08.30
SQL문 HAVING 구에 대해서  (0) 2022.07.28
SQL문 집약 2편  (0) 2022.07.21
SQL문 논리연산자 2편 & 집약  (0) 2022.07.20
SQL문 비교연산자 2편  (0) 2022.07.18
SQL 산술연산자와 비교연산자  (0) 2022.07.13
SQL 주석 작성법  (0) 2022.07.11