반응형
순위함수(분석함수)
결과에 순번, 순위를 매기는 함수
비집계함수 중 RANK, NTILE, DENSE_RANK, ROW_NUMBER 등이 해당된다.
SELECT <순위함수이름> (arguments) OVER ([PARTITION BY <partion_by_list>] ORDER BY <order_by_list>) FROM 테이블명; |
PARTITION BY : 동일 그룹으로 묶어줄 칼럼 명 지정
ORDER BY : Partition 정의에 지정된 컬럼에 대한 정렬 수행
누적 합계 구하기
윈도우 함수와 SUM() 함수를 함께 사용해 누적 합계를 구할 수 있습니다.
SELECT DATE(payment_date) AS dt,
SUM(amount)
FROM sakila.payment p
GROUP BY dt
ORDER BY dt ASC
해당 쿼리는 단순히 결제일시를 결제일로 변환하고 결제일 별로 amout를 SUM()한 쿼리이다.
SELECT DATE(payment_date) AS dt,
SUM(amount),
SUM(SUM(amount)) OVER(ORDER BY DATE(payment_date) ASC )
FROM sakila.payment p
GROUP BY dt
ORDER BY dt ASC
해당 쿼리는 SUM()된 값을 다시 SUM() OVER()를 통해 누적 합계를 구하는 쿼리이다.
반응형
'DB > MySQL' 카테고리의 다른 글
[MySQL] FIRST_VALUE() (0) | 2023.01.18 |
---|---|
[MySQL] IFNULL() (0) | 2023.01.18 |
[MySQL] LAG() 함수 (0) | 2023.01.17 |
[MySQL] LEAD() 함수 (0) | 2023.01.17 |
[MySQL] ROW_NUMBER() 함수 (0) | 2023.01.17 |