SQL 2

[SQL]윈도우 함수(Window Function)

🧩 윈도우 함수보통 우리는 SQL에서 집계함수(SUM, AVG, COUNT 등)를 사용할 때 GROUP BY를 사용해서 데이터를 그룹별로 요약한다. 이 때 결과는 그룹마다 한 행씩만 나오기 때문에 개별 행의 정보는 사라지게 된다. 만약 행은 그대로 유지하면서 동시에 다른 행을 참고해서 게산하고 싶으면 어떻게 해야할까?예를 들어, 사용자별 누적 구매 금액을 계산하거나, 직전 주문과의 차이를 비교하거나, 고객별로 매출 순위를 매기고 싶을 때는 GROUP BY로 계산하기엔 어렵다. 이럴 때 필요한 함수가 바로 윈도우 함수이다.즉, 윈도우 함수란 행을 그룹으로 묶지 않고도 주어진 윈도우(범위) 내 다른 행을 참조하여 계산할 수 있게 해주는 함수이며 순위 매기기, 누적 합계, 전후 비교와 같은 상황에서 사용할 ..

SQL 2025.05.12

[SQL]그룹 내 순위 매기는 윈도우 함수

1. ROW_NUMBER()각 PARTITION(그룹) 내에서 정렬 기준에 따라 고유한 순위값을 반환하는 함수기본 문법ROW_NUMBER() / RANK() / DENSE_RANK() 모두 기본 문법은 동일하다.ROW_NUMBER() OVER(PARTITION BY [그룹화할 컬럼(선택)] ORDER BY [정렬할 컬럼(필수)] PARTITION BY를 사용하지 않으면 전체 행을 기준으로 ORDER BY 컬럼 (=-VISIT_CNT) 기준으로 행 번호가 붙음 (RANKS)SELECT 절 마지막 부분에 ORDER BY RANKS 조건 걸어줘야 RANKS 순위대로 결과값을 볼 수 있음SELECT YYYYMM ,CUST_NO ,STORE_NO ,VISIT_CNT ,ROW_NUMBER()..

SQL 2024.12.12