0

TSQL を使用して、顧客ごとのトランザクション間の日数の標準偏差を計算する必要があります。このテーブルには、CustomerId と TranDate の 2 つの列があります。各顧客には、少なくとも 3 つの固有の取引日があります。たとえば、顧客 abc の取引日は 1/1/13、1/4/13、1/10/13、および 1/20/13 です。トランザクション間の日数は 3、6、および 10 になるため、コードは顧客 abc の標準偏差 2.867 を返す必要があります。

任意の数のトランザクションに対して、顧客ごとにグループ化するような方法でこれをどのようにコーディングできますか?

4

1 に答える 1

1
select id, stdev(DATEDIFF ( dd , '1/1/1900' , enddate ))
from table 
group by id 



with dateOrder as 
(SELECT [fieldID], [value], 
        row_number() over (partition by [fieldID] order by [value]) as row
   FROM [docSVdate])
select do1.fieldID, stdev(datediff(dd, do1.value, do2.value))
  from dateOrder as do1
  join dateOrder as do2
    on do1.fieldID = do2.fieldID 
   and do2.row = do1.row + 1
 group by do1.fieldID
于 2013-10-14T15:13:12.423 に答える