이 쿼리는 DWH 용도로 쓰여지고 있습니다.oracle analytics이 행을 반환하는 방법
는SELECT
YEAR
,MONTH
,WEEK
,C.CPG_PK CPG
,C.DEP_PK DEPT
,T.CUST_ID CUST_ID
,D1.R_ID R_ID
,Decode(d2.AT_CODE,'3',FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE)) AS P1
,decode(d2.AT_CODE,'2',FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE)) AS IC
,decode(d2.AT_CODE,'1',FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE)) AS B1
,decode(FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE), 2 , d2.AT_CODE) AS P2
,decode(FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE), 5 , d2.AT_CODE) AS B2
,COUNT(DISTINCT A.CUST_ID) TOTAL_ACC
,COUNT(DISTINCT T.TXN_PK) TOTAL_TXN
,SUM(AM_AMOUNT) TOTAL_AMT
FROM T_HEADER T
,CUST_MASTER A
,TX_DETAILS1 D1
,TX_DETAILS2 D2
,CPG_MASTER C
WHERE A.TYPE = 0
AND T.CUST_ID = A.CUST_ID
AND T.TXN_PK= 5001
AND T.TXN_PK= D1.TXN_PK
AND T.TXN_PK= D2.TXN_PK
AND D1.CPG_PK = C.CPG_PK
AND D1.OP = 1
GROUP BY
YEAR
,MONTH
,WEEK
,C.CPG_PK
,C.DEP_PK
,t.CUST_ID
,D1.R_ID
,Decode(d2.AT_CODE,'3',FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE))
,decode(d2.AT_CODE,'2',FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE))
,decode(d2.AT_CODE,'1',FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE))
,decode(FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE), 2 , d2.AT_CODE)
,decode(FUNC1.GET_ATT(d2.AT_CODE,D2.VAL_CODE), 5 , d2.AT_CODE)
여기서 생성 된 출력 값 i가 가능기로 시도 반복된다
YEAR MONTH WEEK CPG DEPT CUST_ID R_ID P1 IC B1 P2 B2 TOTAL_ACC TOTAL_TXN TOTAL_AMT
2012 08 32 127 -1 10019 3665 134 1 1
2012 08 32 127 -1 10019 3665 135 1 1
2012 08 32 127 -1 10019 3665 723 1 1
2012 08 32 127 -1 10019 3665 714 1 1
2012 08 32 127 -1 10019 3665 21 1 1
2012 08 32 128 -1 10019 3665 134 1 1
2012 08 32 128 -1 10019 3665 135 1 1
2012 08 32 128 -1 10019 3665 723 1 1
2012 08 32 128 -1 10019 3665 714 1 1
2012 08 32 128 -1 10019 3665 21 1 1
다음과 같다.
필요한 OUPUT은 고유 한 행되어야한다 (b2)으로 중요한 것은, 년, 월, 주, 소비재, 부서, CUST_ID, r_id, P1, IC, B1, P2입니다
YEAR MONTH WEEK CPG DEPT CUST_ID R_ID P1 IC B1 P2 B2 TOTAL_ACC TOTAL_TXN TOTAL_AMT
2012 08 32 127 -1 10019 3665 21 714 723 134 1 1
2012 08 32 127 -1 10019 3665 21 714 723 135 1 1
2012 08 32 128 -1 10019 3665 21 714 723 134 1 1
2012 08 32 128 -1 10019 3665 21 714 723 135 1 1
입니다. 분석 함수를 사용하여 성취 할 수 있습니까? 아니면 쓸 필요가 있습니까? pl/sql
은 내 질문에 의미가 있습니까? – YesYeeYen