프로그래밍/DB

[DB] MSSQL Group by, Group by all 사용법과 차이점

ss-pro 2023. 7. 24. 23:15
반응형

SQL은 사용하다보면 특정데이터를 Group을 지어서 개수,합산,평균등을 구해야 하는 경우가 있습니다. 이때 Group by문을 많이 사용하는데 관련 사용법에 대해 알아 보겠습니다. 

1. Group by시 사용가능한 함수목록

함수 설명
AVG 평균값을 구합니다. 
COUNT count(*) 선택된 개수, count(필드명) NULL인값을 포함하지 않음
SUM 합계
MIN 최소값
MAX 최대값  

COUNT문 사용시에는 NULL포함유무에 따라 구분하여 사용을 하면됩니다. 

2. Group By문 사용법 
AdventureWorksLT2022 샘플데이터베이스로 테스트 해보겠습니다. select문으로 조회해보면 아래와 같이 Product테이블에 데이터가 있는 부분을 확인 할 수 있습니다.

Size값으로 그룹을 지어 몇개의 개수가 있는지 확인 해보겠습니다. group by size로 그룹을 짖고 select문에는 size, count(*)와 같이 개수를 파악할 수 있게 입력합니다. 

1
2
3
4
5
6
/* group by */
SELECT Size, count(Size)
FROM [AdventureWorksLT2022].[SalesLT].[Product]
where ListPrice < 100 
group by  Size 
order by Size

3. Group by All사용
group by all문을 사용하면 where조건에 결과값이 없는 경우에도 항목이 표시되는 부분을 확인 할 수 있습니다. 

1
2
3
4
5
6
/* group by all */
SELECT Size, count(*)
FROM [AdventureWorksLT2022].[SalesLT].[Product]
where ListPrice < 100 
group by all  Size 
order by Size

Group by문을 이용하여 그룹을 지을수 있고 Group by와 Group by All의 차이점은 Where조건을 사용시 조건내에 있는 데이터만 표기할지 아니면 Where조건에 제외된 부분도 포함할지에 대한 차이입니다. 두 부분을 모두 알아두어서 사용 용도에 따라 적절하게 사용하시기 바랍니다.