728x90
반응형
기존에 개발되었던 저장 프로시저를 보다가 문득 의문이 들었던 부분이다.
지금까지는 SUM 집계함수 절을 사용할때는 GROUP BY를 이용하여 특정 컬럼을 기준으로 합계를 구하는 방법만 사용해왔다.
그런데 SUM절과 PARTITION BY절을 같이 쓰는 쿼리를 보게 되었다.
대충 구성은 아래와 같이 되어있다.
SELECT
VALUE_1,
SUM(VALUE_2) OVER
(
PARTITION BY VALUE_1
) AS VALUE_2
FROM TEST
아직 PARTITION BY를 잘 몰라 대체 왜? 굳이? GROUP BY가 아닌 PARTITION BY를 쓴거지? 어처피 GROUPING하는건 똑같이 않나? 라고 생각하고 PARTITION BY의 기능에 대해 찾아보게 되었고 내가 까먹었을 때 찾아보기 위한 글이다.
공통점은 위에 내가 말한대로 Group by던 Partition By 던 둘 다 Grouping하여 무언갈 동작 하게 하는것은 맞다. 하지만 가장 큰 차이점이 있으니
Group By는 ID(Grouping 할 기준)으로 중복되어 있는 데이터들을 합쳐서 보여주고 Partition By는 중복된 데이터가 있어도 각각의 Row마다 Grouping하여 계산한 결과를 보여준다는 것이다.
SELECT
VALUE_1,
SUM(VALUE_2) AS VALUE_2
FROM
TEST
GROUP BY
VALUE_1
사진을 보면 바로 이해가 될 것이다.
굳이 저렇게 사용하는 이유는 사용자에게 어떤 화면을 보여줄지 설계하는것이 따라 저렇게도 사용하지 않을까 생각한다..
728x90
반응형
'IT > MSSql' 카테고리의 다른 글
[MS-SQL] CONVERT 스타일 특징 (0) | 2025.05.30 |
---|---|
[MS-SQL] 속도 개선 방법 정리 (0) | 2025.05.22 |
[MS-SQL] 실무에서 자주 사용되는 쿼리 - 1 (0) | 2025.05.19 |
[MS-SQL] 자료형 정리 (0) | 2025.05.14 |
[MS-SQL] char vs varchar / nchar vs nvarchar 차이 (0) | 2025.05.14 |