MSSQL에서 제공하는 집계 함수들은 데이터를 그룹화하고 요약하는 데 사용됩니다. 이러한 함수들은 주로 GROUP BY 절과 함께 사용되며, 특정 조건에 따라 데이터를 그룹화하여 각 그룹에 대한 집계 결과를 계산합니다. 다음은 주요 MSSQL 집계 함수에 대한 설명과 각 함수의 예제입니다.
1. 집계함수 정리
COUNT | 레코드의 수를 계산합니다. |
SUM | 숫자 열의 합을 계산합니다. |
AVG | 숫자 열의 평균을 계산합니다. |
MIN 및 MAX | 숫자 또는 날짜 열에서 최소/최대값을 찾습니다. |
STDEV 및 VAR | 표준 편차 및 분산을 계산합니다. |
GROUP_CONCAT | 여러 행의 값을 그룹으로 묶어 하나의 문자열로 만듭니다. |
FIRST_VALUE와 LAST_VALUE |
그룹 내에서 첫 번째 및 마지막 값 가져오기 |
ROW_NUMBER RANK DENSE_RANK |
정렬된 결과에 대한 순위를 부여합니다. |
CUME_DIST | 누적 분포의 백분율을 계산합니다. |
CHECKSUM_AGG | 그룹 내 값의 체크섬을 계산합니다. |
STRING_AGG | 문자열 열을 결합하여 그룹 내에서 구분자로 분리된 값을 생성합니다. |
2. 집계 함수 정의 및 예제
1. COUNT 함수
- 레코드의 수를 계산합니다.
SELECT COUNT(*) AS TotalRecords
FROM TableName;
2. SUM 함수
- 숫자 열의 합을 계산합니다.
SELECT SUM(Salary) AS TotalSalary
FROM Employee;
3. AVG 함수
- 숫자 열의 평균을 계산합니다.
SELECT AVG(Price) AS AveragePrice
FROM Products;
4. MIN 함수
- 숫자 또는 날짜 열에서 최소값을 찾습니다.
SELECT MIN(Age) AS MinAge
FROM Customers;
5. MAX 함수
- 숫자 또는 날짜 열에서 최대값을 찾습니다.
SELECT MAX(Revenue) AS MaxRevenue
FROM Sales;
5. GROUP BY절과 함께 사용
- 데이터를 그룹화하고 각 그룹에 대한 집계를 계산합니다.
SELECT Department, AVG(Salary) AS AvgSalary
FROM Employees
GROUP BY Department;
6. HAVING 절
- GROUP BY와 함께 사용되어 특정 조건을 만족하는 그룹만을 선택합니다.
SELECT Department, AVG(Salary) AS AvgSalary
FROM Employees
GROUP BY Department
HAVING AVG(Salary) > 50000;
7. STDEV 및 VAR
- 표준 편차 및 분산을 계산합니다.
SELECT STDEV(Marks) AS StdDeviation
FROM ExamResults;
8. GROUP_CONCAT
- 여러 행의 값을 그룹으로 묶어 하나의 문자열로 만듭니다. (MySQL의 GROUP_CONCAT과 유사)
SELECT Department, GROUP_CONCAT(EmployeeName) AS EmployeeList
FROM Employees
GROUP BY Department;
9. FIRST_VALUE와 LAST_VALUE
- 그룹 내에서 첫 번째 및 마지막 값 가져오기
SELECT Department, FIRST_VALUE(EmployeeName) OVER (PARTITION BY Department ORDER BY Salary) AS LowestSalaryEmployee
FROM Employees;
10. ROW_NUMBER, RANK, DENSE_RANK
- 정렬된 결과에 대한 순위를 부여합니다.
SELECT EmployeeName, Salary,
ROW_NUMBER() OVER (ORDER BY Salary DESC) AS RowNum,
RANK() OVER (ORDER BY Salary DESC) AS Rank,
DENSE_RANK() OVER (ORDER BY Salary DESC) AS DenseRank
FROM Employees;
11. CUME_DIST
- 누적 분포의 백분율을 계산합니다.
SELECT EmployeeName, Salary,
CUME_DIST() OVER (ORDER BY Salary) AS CumulativeDistribution
FROM Employees;
12. CHECKSUM_AGG
- 그룹 내 값의 체크섬을 계산합니다.
SELECT Department, CHECKSUM_AGG(CHECKSUM(EmployeeName, Salary)) AS Checksum
FROM Employees
GROUP BY Department;
13. STRING_AGG
- 문자열 열을 결합하여 그룹 내에서 구분자로 분리된 값을 생성합니다.
SELECT Department, STRING_AGG(EmployeeName, ', ') AS EmployeeList
FROM Employees
GROUP BY Department;
이것은 일부 MSSQL 집계 함수의 간단한 예제입니다. 각 함수는 특정 작업에 적합하며, 데이터베이스에서 원하는 결과를 얻기 위해 조합하여 사용할 수 있습니다.
'IT > MSSQL' 카테고리의 다른 글
MSSQL 프로시저 PROCEDURE 서식 및 생성 예제 (0) | 2024.02.19 |
---|---|
MSSQL 함수 FUNCTION 서식 및 생성 예제 (0) | 2024.02.17 |
[MSSQL] 수치연산함수 정의 및 예제 (0) | 2024.02.12 |
MSSQL 특정 위치에서 문자 추출 자르기 SUBSTRING / LEFT / RIGHT (0) | 2024.02.11 |
[MSSQL] 세로 데이터를 가로 데이터 조회 / PIVOT (0) | 2024.02.10 |
댓글