RANK
구문 : rank() over 컬럼명
예제) 나이가 적은 순위를 매겨보자
SELECT age,
rank() over (order by age) as asc_rank -- age가 적은 순서로 순위를 매기자(order by asc)
FROM Customers
결과 : 22세가 1위, 31세가 5위

LEAD
예제) 고객행동을 파악해보자.
어떤 고객이 사이트를 클릭하고 그 뒤에 또 어떤 사이트를 클릭했는지 알아보자.

테이블
코드
SELECT clk_index, user_name, date,
LEAD(clk_index, 1) --LEAD 함수가 가져올 컬럼는 clk_index이며 1이들어갔으므로 바로 다음 값을 추출(2가 들어가면 2번째의 값)
OVER (PATRIRION BY user_name, date --유저이름과, 날짜를 기준으로 파티셔닝함.
ORDER BY clk_index) --clk_index 순으로 정렬
next_click --lead함수 결과를 next_click으로 반환
FROM clicks
ORDER BY 3,1
결과값 : 읽을값 = clk_index, 읽을값 이후의 값 = next_click
영희는 0인덱스를 클릭 후 2인덱스를 클릭함.

LAG()
예제) 고객행동을 파악해보자.
어떤 고객이 사이트를 클릭하기 전에 어떤 사이트를 클릭했는지 알아보자.

테이블
코드
SELECT clk_index, user_name, date,
LAG(clk_index, 1) --LAG 함수가 가져올 컬럼는 clk_index이며 1이들어갔으므로 바로 이전값을 가져옴.(2가 들어갔다면 2번째 전 값)
OVER (PATRIRION BY user_name, date --유저이름과, 날짜를 기준으로 파티셔닝함.
ORDER BY clk_index) --clk_index 순으로 정렬
next_click --lead함수 결과를 next_click으로 반환
FROM clicks
ORDER BY 3,1
결과: 영희의 2번째 클릭은 index가 2이다. 그 전 클릭은 0으로 나온다.
