안녕하세요.
오라클클럽을 통해 공부 열심히 하고 있습니다.
쿼리 공부 중 질문하나 드립니다.
SELECT YEAR
, MONTH
, SHOP
, SUM_VAL
, LAG (SUM_VAL, 1, 0) OVER (PARTITION BY SHOP ORDER BY YEAR, MONTH) PRE_MONTH
, SUM_VAL - LAG (SUM_VAL, 1, 0) OVER (PARTITION BY SHOP ORDER BY YEAR, MONTH) AS "전월대비실적"
FROM (SELECT YEAR
, MONTH
, SHOP
, SUM (TOT_AMT) OVER (PARTITION BY YEAR, MONTH, SHOP) SUM_VAL
, ROW_NUMBER () OVER (PARTITION BY YEAR, MONTH, SHOP ORDER BY SHOP) RN
FROM OG_ODS_ORDER_AGGREGATION_LJJ
WHERE BASE_DATE BETWEEN '20111201' AND '20121201')
WHERE RN = 1
와 마찬가지로 전월 대비 실적을 구하는 쿼리를 작성했는데요,
이 전월 대비 실적을 가지고 랭킹을 구하고 싶습니다.
RANK () OVER (ORDER BY SUM_VAL - LAG (SUM_VAL, 1, 0) OVER (PARTITION BY SHOP ORDER BY YEAR, MONTH)) "전월대비실적랭킹" 라고 작성을 해보니까,
"윈도우 함수를 여기에 사용할 수 없습니다." 라는 오류가 발생하네요.
1. 랭킹을 구하는 방법
2. 만약에 저런 구문은 알리어스로 주지 못하고 문장 그대로를 줘야 하나요 쿼리문
그러니 SELECT 1번 AS "1번알리어스"
, 2번 AS "2번알리어스" 시 1번의 AS를 통한걸로 구현을 하고 싶은경우 "1번알리어스" 라고 사용 못하고
1번알리어스를 구현한 그 쿼리로 줘야나요? 사용할 수 있는 방법은 있나요?