250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 문법 차이
- JavaScript
- list multiplication
- html
- 기업 협업
- GROUPING
- show graph characteristics
- Node.js
- 위코드
- MYSQL
- 코드 스니펫
- SQL
- 뷰
- dense rank
- 비절차적 데이터 조작어
- python
- Oracle
- git
- execute immediate
- dom
- coalesce
- sql 저장 모듈
- 자료구조
- simple case expression
- window 함수
- searched case expression
- 정보처리기사
- SQLD
- ROLLUP
- 정규식 연산
Archives
- Today
- Total
프로그래밍 숲
SQL GROUPING 쉽게 이해해보기! 본문
728x90
반응형
GROUPING이란?
SQL에서 GROUP BY는 데이터를 특정 열 또는 열 그룹에 따라 그룹화하는 데 사용되는 문장입니다. 그룹화 기능은 그룹별로 요약 통계를 제공하는 데 유용합니다.
다만, GROUPING이라는 기능은 GROUP BY와 함께 사용되는 특수한 함수로, 이는 SQL Server, Oracle 등 일부 DBMS에서 지원합니다. GROUPING 함수는 GROUP BY 절에 ROLLUP 또는 CUBE를 함께 사용하여 데이터를 그룹화할 때 사용됩니다. 이 함수는 슈퍼 총계 행(즉, ROLLUP 또는 CUBE 연산의 결과)인지 아닌지를 판별합니다. 슈퍼 총계 행이면 GROUPING 함수는 1을 반환하고, 그렇지 않으면 0을 반환합니다.
GROUPING 예시
각 고객별로 주문한 총 상품 수량을 그룹화하고, 모든 고객의 총 수량을 추가로 제공하는 예시로 GROUPING을 설명해 보도록 하겠습니다.
SELECT
CustomerID,
SUM(Quantity) as TotalQuantity,
GROUPING(CustomerID) as IsSuperTotal
FROM
Orders
GROUP BY
CustomerID WITH ROLLUP
위의 쿼리의 결과는 다음과 같습니다.
| CustomerID | TotalQuantity | IsSuperTotal |
|------------|---------------|--------------|
| 1 | 100 | 0 |
| 2 | 200 | 0 |
| 3 | 300 | 0 |
| NULL | 600 | 1 |
결과에서 볼 수 있듯이, CustomerID가 NULL인 행은 모든 고객의 총계 행입니다. GROUPING 함수는 이 행이 슈퍼 총계 행임을 나타내기 위해 1을 반환합니다. 이는 이 행이 WITH ROLLUP에 의해 생성되었음을 나타냅니다. 그 외의 행에서는 0을 반환합니다. 이것이 바로 GROUPING 함수의 기본 사용법입니다.
728x90
반응형
'프로그래밍_인포 > 데이터베이스&SQL' 카테고리의 다른 글
Oracle 데이터베이스 관리를 위한 PL/SQL 기초 안내서 (0) | 2023.06.14 |
---|---|
SQL 윈도우 함수 한눈에 알아보기 Rank(), Dense Rank(), Row_Number() (0) | 2023.06.13 |
SQL CUBE 그룹함수 쉽게 이해하기! (0) | 2023.06.09 |
SQL ROLLUP 연산자 쉽게 이해하기 (0) | 2023.06.08 |
뷰 생성 스크립트 쉽게 이해하기 (0) | 2023.06.07 |
Comments