我正在努力按日期获得一系列(连续)订单的平均值。直接向您展示会更容易:
| 登录|星期_日期|Active_Streak|非活动条纹|金额|
| --------------|--------------|--------------|--------------|--------------|
| ABC| 2019 - 01 - 19 2019 - 01 - 19| 1| 0|四个|
| ABC| 2019 - 01 - 25 2019 - 01 - 25|二|0|六|
| ABC| 2022年2月1日|三|0|九|
| ABC| 2019 - 02 - 08|四个|0|二|
| ABC| 2019 - 02 - 15 2019 - 02 - 15| 0| 1|零|
| ABC| 2022/02/22| 1| 0|六|
| ABC| 2022/03/01|二|0|十一|
| ABC| 2022/03/08| 0| 1|零|
| ABC| 2022/03/15| 0|二|零|
| ABC| 2019 - 01 - 22 2019 - 01 - 22| 1| 0|四个|
例如,我想知道数量的平均值,以理解为什么我有一个不活跃的一周,等等,我们有一个不活跃的一周。
例如,每个不活动周一行,平均金额和week_date
。
我需要得到这样的输出:
| 登录|星期_日期|Active_Streak|非活动条纹|AVG_active_Amount|
| --------------|--------------|--------------|--------------|--------------|
| ABC| 2019 - 02 - 15 2019 - 02 - 15|四个|1|五点二五|
| ABC| 2022/03/15|二|二|八点五|
2条答案
按热度按时间epggiuax1#
问题中所示的仅选择2行的逻辑没有解释,但似乎是当活动条纹为0时,而且下一个活动条纹不是零(或NULL)。因此,考虑到这个逻辑,我可以计算日期范围,一旦确定了这些日期范围,我就可以定位这些日期边界内的行来计算聚合:
fiddle
sd2nnvve2#
在PostgreSQL上,我会这样做:
现在,查询:
它返回: