0
    CUST_ID     ACCT_ID         FICO_SCORE  DATE_APPLICATION_RECEIVED
1   48378281    2,200,263,271   577         5/3/2001
2   48378281    2,346,832,797   611         5/14/2003
3   48378281    2,210,263,271   560         5/2/2002
4   48378281    2,416,532,797   575         5/14/2005

Teradata に私の会社の複数のアカウントを持つ顧客のリストがあり、彼らの fico スコアと、私たちとの新しいアカウントの申請が開始された日付があるとします。顧客は 2 つ以上のアカウントを持っている必要があり、最大 5 つのアカウントを持つことができます。上記は、そのテーブルが 1 人の顧客についてどのように見えるかを示しています。この母集団を、最初に開設された口座と 2 番目に開設された口座の間で開設日が少なくとも 6 か月離れている口座を持つ顧客だけに限定するにはどうすればよいですか? 最後に count(unique(cust_id)) だけが必要です。

4

1 に答える 1

1

あなたが正しく理解しているとすれば、最初の 2 つのアカウントが 6 か月以上離れていることだけを気にかけているということですか?

SELECT COUNT(*) 
FROM
 (
   SELECT CUST_ID
   FROM tab
   QUALIFY  -- only the first account of a customer
      ROW_NUMBER() 
      OVER (PARTITION BY CUST_ID
            ORDER BY DATE_APPLICATION_RECEIVED) = 1
   AND -- at least six months between this and the next row
      ADD_MONTHS(DATE_APPLICATION_RECEIVED, 6) 
       < MIN(DATE_APPLICATION_RECEIVED) 
         OVER (PARTITION BY CUST_ID
               ORDER BY DATE_APPLICATION_RECEIVED
               ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING)
 ) AS dt
于 2013-07-13T09:11:00.420 に答える