이전 글에서는 집약에서 대해서 확인을 하여 보았습니다.
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 |