일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mssql
- pandas
- 날짜
- 다이어트
- Unity
- port
- urllib
- 리눅스
- sqlite
- PER
- python
- Excel
- Linux
- PyQt5
- swift
- IOS
- MS-SQL
- 함수
- javascript
- 라즈베리파이
- ASP
- PyQt
- MySQL
- 유니티
- node.js
- 맛집
- tensorflow
- flutter
- GIT
- ubuntu
아미(아름다운미소)
[MSSQL 문법]GROUP BY로 행 그룹화 본문
SQL Server 2005
GROUP BY 절을 사용하여 결과 집합에서 각 행의 집계 값을 만듭니다. GROUP BY 절을 사용하지 않으면 집계 함수는 SELECT 문에 대해 하나의 집계 값만 보고합니다.
다음 예에서는 데이터베이스에서 각 판매 주문의 합계를 찾습니다.
USE AdventureWorks; GO SELECT SalesOrderID, SUM(LineTotal) AS SubTotal FROM Sales.SalesOrderDetail sod GROUP BY SalesOrderID ORDER BY SalesOrderID ; GO
GROUP BY 키워드는 그룹화 열로 알려진 열 목록 이전에 옵니다. GROUP BY 절은 결과 집합의 행을 제한합니다. 즉, 그룹화 열에 있는 각 고유 값에 대해 행이 하나만 있습니다. 각 결과 집합 행에는 그룹화 열의 특정 값과 관련된 요약 데이터가 포함되어 있습니다.
SELECT 문에 GROUP BY가 포함되어 있는 경우 SELECT 목록에 지정할 수 있는 항목이 제한됩니다. SELECT 목록에 허용되는 항목은 다음과 같습니다.
- 그룹화 열
- 매개 변수 중 하나가 열 이름인 집계 함수처럼 그룹화 열의 각 값에 대해 값을 하나만 반환하는 식. 이러한 식을 벡터 집계라고 합니다.
예를 들어 TableX에는 다음이 포함됩니다.
ColumnA | ColumnB | ColumnC |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ColumnA
가 그룹화 열일 경우 결과 집합에는 두 개의 행, 즉 값 1에 대한 정보를 요약하는 행과 값 2에 대한 정보를 요약하는 행이 포함됩니다.
ColumnA
가 그룹화 열이면 ColumnB
또는 ColumnC
가 ColumnA
의 각 값에 대해 단일 값을 반환할 수 있는 집계 함수에서 매개 변수일 경우에만 이러한 열을 참조할 수 있습니다. SELECT 목록에 MAX(ColumnB), SUM(ColumnC), AVG(ColumnC) 등의 식을 포함할 수 있습니다.
SELECT ColumnA, MAX(ColumnB) AS MaxB, SUM(ColumnC) AS SumC FROM TableX GROUP BY ColumnA
이 SELECT 문은 ColumnA
의 각 고유 값에 대해 하나씩 모두 두 개의 행을 반환합니다.
ColumnA MaxB SumC ----------- ---- ----------- 1 ghi 18 2 mno 11 (2 row(s) affected)
그러나 다음과 같이 SELECT 목록에 식 ColumnB
만 포함할 수는 없습니다.
SELECT ColumnA, ColumnB, SUM(ColumnC) AS SumC FROM TableX GROUP BY ColumnA
GROUP BY는 ColumnA
에서 값이 1인 행을 하나만 반환할 수 있으므로 ColumnA
의 값 1과 연결된 ColumnB
의 값 3개(abc, def 및 ghi)를 반환할 수는 없습니다.
데이터 형식이 다른 값을 반환하는 함수에 있지 않으면 ntext, text, image 또는 bit 열에 GROUP BY나 HAVING을 사용할 수 없습니다. 데이터 형식이 다른 값을 반환하는 함수로는 SUBSTRING 및 CAST가 있습니다.
'데이타베이스 > MSSQL' 카테고리의 다른 글
[MSSQL 문법]IDENTITY (ID 자동 증가값) 초기화 (0) | 2017.12.18 |
---|---|
MSSQL 데이터 특정시점 복원 (0) | 2017.12.15 |
[MS-SQL] 임시 테이블 (0) | 2017.12.14 |
[MS-SQL] SQL Server 2014 Express 다운로드 경로 (0) | 2017.12.13 |
[MSSQL 문법] 커서(CURSOR) 사용 간단예제 (0) | 2017.12.13 |