2

我有一个表 xyz,包含三列 rcvr_id、mth_id 和 tpv。rcvr_id 是给客户的 id,mth_id 是存储月份编号的列(mth_id 计算为 (2012-1900) * 12 + 1,2,3..(取决于月份)。例如 2011 年 12 月月 ID 为 1344,2012 年 1 月为 1345 等。 Tpv 是一个变量,显示客户交易金额。

Example table

rcvr_id mth_id tpv

1       1344   23
2       1344   27
3       1344   54
1       1345   98
3       1345   102
          .
          .
          .
so on

P.S if a customer does not have a transaction in a given month, his row for that month wont exist.

现在,问题。根据 1327 到 1350 月份的交易,我需要将客户分类为稳定或零星。

这是一个描述。

此模式适用于 1 个客户.. 我有数百万客户

上图适用于 1 位客户。我有数以百万计的客户。

我该怎么做?我不知道如何识别 sql 中的趋势 .. 或者更确切地说如何以最好的方式做到这一点。

另外,我正在研究 teradata。

好的,我已经找到了如何获得标准偏差。现在重要的问题是:我如何自己设置标准偏差限制?我不能随便说“如果标准开发高于 40%,他是零星的,否则稳定”。我想为所有客户计算标准偏差的平均值,如果高于这个值,那么他是零星的,否则是稳定的。但我觉得可能有更好的逻辑

4

1 回答 1

3

我建议使用该STDDEV_POP函数 - 值越高表示值的变化越大。

select 
rcvr_id, STDDEV_POP(tpv)
from yourtable
group by rcvr_id

STDDEV_POP标准差的函数

如果这不足以区分,您可能需要查看回归函数和方差。

于 2012-08-23T10:53:36.587 回答