일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자본주의
- 딥러닝
- 윈도우10
- tensorflow
- PYTHON MSSQL
- c#
- 파이썬
- scrapy
- windows10
- MSSQL PYTHON
- 티스토리 초대장
- pymssql
- rs485
- 오라클
- Serial
- MEAN Stack
- MX Component
- MSSQL
- rs422
- sql developer
- django
- matplot
- oracle
- 텐서플로우
- M2M
- 장고
- Visual Studio Code
- Python
- vscode
- 크롤링
Archives
- Today
- Total
안까먹을라고 쓰는 블로그
[MSSQL] GROUP BY절(Feat.HAVING, ROLLUP, CUBE, GROUPING SETS) 본문
DataBase/MS SQL
[MSSQL] GROUP BY절(Feat.HAVING, ROLLUP, CUBE, GROUPING SETS)
YawnsDuzin 2023. 11. 15. 16:35
반응형
GROUP BY 절은 행 그룹(group of rows)을 생성하고, HAVING절은 조회할 행 그룹을 선택한다.
GROUP BY 절은 WHERE 절 다음에 기술하며, WHERE 절이 수행된 후 수행된다.
HAVING절은 GROUP BY 절 다음에 기술하며, GROUP BY 절이 수행된 후 수행된다.
SELECT 절 -- (5)
FROM 절 -- (1)
WHERE 절 -- (2)
GROUP BY 절 -- (3)
HAVING 절 -- (4)
ORDER BY 절 -- (6)
GROUP BY 절
GROUP BY 절은 expr로 행 그룹을 생성하고, 생성된 행 그룹을 하나의 행으로 그룹핑(grouping)한다.
GROUP BY expr [, expr}]...
ROLLUP
ROLLUP은 지정한 표현식의 계층별 소계와 촐계를 집계한다.
ROLLUP (expression)list [, expression_list]...)
GROUP BY | 결과 |
ROLLUP (a) | (a), () |
ROLLUP (a, b) | (a, b), (a), () |
ROLLUP (a, b, c) | (a, b, c), (a, b), (a), () |
CUBE
CUBE는 지정한 표현식의 모든 조합을 집계한다.
CUBE (express_list [, expression_list]...)
GROUP BY | 결과 |
CUBE (a) | (a), () |
CUBE (a, b) | (a, b), (a), (b), () |
CUBE (a, b, c) | (a, b, c), (a, b), (a, c), (b, c), (a), (b), (c), () |
GROUPING SETS
GROUPING SETS ({rollup_cube_clause | grouping_expression_list})
GROUPING SETS은 지정한 행 그룹으로 행을 집계한다.
행 그룹으로 ROLLUP과 CUBE를 사용할 수도 있다.
GROUP BY | 결과 |
GROUPING SETS (a, b) | (a), (b) |
GROUPING SETS ((a, b), a, ()) | (a, b), (a), () |
GROUPING SETS (a, ROLLUP (b)) | (a), (b), () |
GROUPING SETS (a, ROLLUP (b, c)) | (a), (b, c), (b), () |
GROUPING SETS (a, b, ROLLUP (c)) | (a), (b), (c), () |
조합열
조합열(composite column)은 하나의 단위로 처리되는 열의 조합이다. 조합열은 아래와 같이 동작한다.
GROUP BY | 결과 |
ROLLUP ((a, b)) | (a, b), () |
ROLLUP (a, (b, c)) | (a, b, c), (a), () |
ROLLUP (((a, b), c) | (a, b, c), (a, b), () |
연결그룹
연결그룹(concatenated grouping)을 사용하면 행 그룹을 간결하게 작성할 수 있다.
연결그룹은 아래와 같이 동작한다.
GROUP BY | 결과 |
a, ROLLUP (a) | (a, b), (a) |
a, ROLLUP (b, c) | (a, b, c), (a, b), (a) |
a, ROLLUP (b), ROLLUP (c) | (a, b, c), (a, b), (a, c), (a) |
GROUPING SETS (a, b), GROUPING SETS (c, d) | (a, c), (a, d), (b, c), (b, d) |
사용 예 및 문법관련해서는 아래의 MSSQL 공식문서를 참고하시기 바랍니다.
https://learn.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-ver16
끝~
반응형
'DataBase > MS SQL' 카테고리의 다른 글
[MSSQL] 함수 : 해당월의 마지막 일자 구하기 (0) | 2023.12.28 |
---|---|
[MSSQL] 시작 ~ 종료일자, 전체일자 구하기 (0) | 2023.12.15 |
[MSSQL[ 계층형쿼리,재귀쿼리,트리쿼리 (Feat. with CTE) (0) | 2023.11.15 |
[MSSQL] 예외처리 (TRY, CATCH) (0) | 2023.10.13 |
[MSSQL] 트랜잭션(Transaction) (0) | 2023.09.26 |
Comments