sqlteradata 조회 개선

4

질문:

저는 다음과 같은 표를 가지고 있습니다. 결과에 집중된 참고 345와 789 앞에'Y'를 붙이고 싶습니다. 이 결과는 계수(참고)=1을 바탕으로 하고 그 중에서 금액은 0보다 적습니다.나는 이 조회를 사용하여 필요한 출력을 얻는다.제 질문은, 테라다타에서 다른 (더 효과적인) 방법이 있나요?
enter image description here
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