Обсуждение: SQL Question - "Recursion"

Поиск
Список
Период
Сортировка

SQL Question - "Recursion"

От
ktr73
Дата:
Hi -

Was wondering if anyone could help / had some thoughts.  I am building
a model for a client, and right now doing customer attrition
modeling.  Basically, the number of customers in this period is equal
to:

Beg # Customers
+ customers added this period
- attrition
Ending # Customers

Obviously getting the beginning number of customers and # of added has
been easy via SQL.  Also, the above is fairly straightforward in a
spreadsheet program like Excel.  But I can't seem to come to grips
with how to model the attrition line item in SQL, as it's based on
last months ending balance ...  which in turn is based on beg + add -
attr = end for the previous period, and so on.

So it seems to be a recursive function as far as I can tell ... any
idea how to model this via SQL?  I can get running totals for the # of
adds with a correlated subquery, but I can't seem to figure out how to
build the attrition into that running total.

All help is greatly appreciated!  Thanks,

Kevin

Re: SQL Question - "Recursion"

От
Guy Rouillier
Дата:
ktr73 wrote:
> Hi -
>
> Was wondering if anyone could help / had some thoughts.  I am building
> a model for a client, and right now doing customer attrition
> modeling.  Basically, the number of customers in this period is equal
> to:
>
> Beg # Customers
> + customers added this period
> - attrition
> Ending # Customers
>
> Obviously getting the beginning number of customers and # of added has
> been easy via SQL.  Also, the above is fairly straightforward in a
> spreadsheet program like Excel.  But I can't seem to come to grips
> with how to model the attrition line item in SQL, as it's based on
> last months ending balance ...  which in turn is based on beg + add -
> attr = end for the previous period, and so on.
>
> So it seems to be a recursive function as far as I can tell ... any
> idea how to model this via SQL?  I can get running totals for the # of
> adds with a correlated subquery, but I can't seem to figure out how to
> build the attrition into that running total.

Don't understand why you need recursion.  Seems like attrition can be
calculated.  You say you can get the beginning number of customers.  The
ending number of customers for month N = beginning number of customers
for month N+1.  So, if you have the beginning, ending and # customers
added, then attrition = ending - beginning - #added.

--
Guy Rouillier