2017-02-24 1 views
0

[Account_No, Transaction_Amount, Transaction_Date 및 Transaction_Time] 열이있는 테이블이 있습니다. 하루에 "거래 금액의 합계가 2,000,000/-을 (를) 초과하고 거래 시간이 10 분이 넘는"계정을 선택하고 싶습니다. 이것에 대한 질문은 무엇입니까? 도와주세요. Teradata를 사용하고 있습니다.Teradata에서 시간별 쿼리 결과 그룹화

감사

Khawar

+1

을 할 수 있습니다 및 자세한 내용은? * 거래 시간은 1 분에서 10 분 * 평균 10 분 이내 또는 처음 10 분 시간/일 사이는 무엇입니까? – dnoeth

+0

이것은 "10 분 이내"라고합니다. – KhawarAmeerMalik

+0

10 분 간격으로? 14시 3 분부터 14시 13 분까지와 마찬가지로 아니면 14:00 - 14:09, 14:10 - 14:19 등을 의미합니까? 10 분의 시작을 어떻게 정의합니까? – Andrew

답변

1

한 가지 방법은 다음과 같습니다 (테라 데이타는 RANGE OVER 구문을 구현하지 않는 한)를 자체 조인입니다 :

SELECT t1.Account_No, 
    t1.Transaction_Date, 
    t1.Transaction_Time, 
    Sum(t2.Transaction_Amount) AS sumamt 
FROM tab AS t1 
JOIN tab AS t2 
    ON t1.Account_No = t2.Account_No 
-- same day within the next ten minutes of a transaction 
AND t2.Transaction_Date = t1.Transaction_Date 
AND t2.Transaction_Time BETWEEN t1.Transaction_Time 
          AND t1.Transaction_Time + INTERVAL '10' MINUTE 
GROUP BY 1,2,3 
HAVING sumamt >= 2000000 -- more than 2 mio 
QUALIFY 
    Row_Number() -- only one row per account/day 
    Over (PARTITION BY t1.Account_No, t1.Transaction_Date 
     ORDER BY t1.Transaction_Time) = 1 
+0

안녕하세요, @dnoeth, 주말에 지연된 응답으로 미안합니다. Teradata에 액세스 할 수 없어서 시작을 기다려야했습니다. 확인하는 주. 제안 된 쿼리가 작동하고 결과를 얻었습니다. 그러나 '쿼리로 결과가 두 배로 증가했습니다'라는 문제가 발생했습니다. 실제 트랜잭션이 두 개있는 경우 쿼리가 표시됩니다 4. 그래서 나는 단일 쿼리로 쿼리를 단순화하고 작동했습니다. 그러나 귀중한 시간과 반응에 감사드립니다. 친애하는. – KhawarAmeerMalik