sqlteradata 조회 개선
4
질문:
저는 다음과 같은 표를 가지고 있습니다. 결과에 집중된 참고 345와 789 앞에'Y'를 붙이고 싶습니다. 이 결과는 계수(참고)=1을 바탕으로 하고 그 중에서 금액은 0보다 적습니다.나는 이 조회를 사용하여 필요한 출력을 얻는다.제 질문은, 테라다타에서 다른 (더 효과적인) 방법이 있나요?
SELECT T.Ref,T.AMOUNT, R.Refund_IND as Refund_IND
FROM Table1 t
LEFT JOIN (select 'Y' as Refund_IND, Ref from Table1 where Ref in
(select Ref from Table1 where amount < 0)
group by Ref having count(Ref) = 1) R on t.Ref = R.Ref
답안
창 함수를 사용하여 이러한 조건을 테스트할 수 있습니다. SELECT
Ref,
Amount,
CASE WHEN COUNT(*) OVER (PARTITION BY REF) = 1 AND Amount < 0 THEN 'Y' ELSE '' END AS Refund_Ind
FROM Table1