我有一个表xyz,有三列rcvr_id,mth_id和tpv。 rcvr_id是给客户的id,mth_id是存储月份数的列(mth_id计算为(2012-1900)* 12 + 1,2,3 ..(取决于月份)。例如2011年12月将有day_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位客户。我有数百万客户。
我该怎么做?我不知道如何识别sql的趋势...或者更好的方法如何尽可能地做到这一点。
我正在研究teradata。
好的,我已经找到了如何获得标准偏差。现在重要的问题是:我如何设置自己的标准偏差限制?我不能随便说“如果标准开发率超过40%,他就是零星的其他稳定”。我想到了计算所有客户的标准差的平均值,如果它高于那个,那么他就是零星的稳定。但我觉得可能有更好的逻辑
答案 0 :(得分:3)
我建议使用STDDEV_POP
函数 - 值越高表示值的变化越大。
select
rcvr_id, STDDEV_POP(tpv)
from yourtable
group by rcvr_id
STDDEV_POP
是Standard Deviation
如果这没有足够的区别,您可能需要查看回归函数和方差。