微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL - 递归和迭代移动平均

如何解决SQL - 递归和迭代移动平均

我有所有必要的字段来详细说明这样的保留矩阵:

enter image description here

也就是说,我有Cohort_Month”(每个客户第一次交易的月份),“Period_Number”(这是“Month每行的 XX”值,或者换句话说,每个群组和该群组中完成的每笔交易之间的月数)和“保留”(这只是每个 Cohort_Month/Period_Number 的值双工)。

我需要做的是推断保留值,以便矩阵没有空值,取前 2 个期间的移动平均值(并且在前一个期间只有 1 个时为相同值)。

因此,对于 2017 年 3 月/04 月的双工,保留值应为 99.7775%,即同一时期数(99.945% 和 99.610%)的前两个队列值的平均值

这可以通过 windows 函数和经典的 avg + rows between、before 和 following 函数轻松实现。

但是我的问题是,当保留值通过该元组的移动平均值计算时,我需要保留该新值,并在下一个群组/月元组中使用。在这种情况下,我需要在计算 2017 年 4 月/4 月双工的值时考虑 99.7775% 值和前一个值 (99.945),并遵循该模式,直到所有空值都填充新值。

在 python 中,我可以使用循环轻松实现这一点,但我需要在 sql 中完成,而且我很挣扎。 我见过类似 thisthis 之类的相关问题,但运气不佳。

我正在使用 DBT。非常感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。