使用当前月份的前几个月条目

时间:2018-10-05 08:14:21

标签: sql amazon-athena presto

在我的Presto(Athena)数据库中,我有客户ID,余额和日期的数据。余额列显示给定日期客户余额的变化。余额可以上升和下降。数据的结构如下:

ID   |  Balance| Created
________________________

260709  399.00  2018-10-02
70791   358.44  2018-08-01
70791   344.10  2018-06-01
260709  936.46  2018-08-01
260709  899.00  2018-07-01
70791   347.26  2018-05-28
70791   344.10  2018-05-28
70791   344.10  2018-05-27
260709  899.00  2018-05-27
378218  4500.00 2018-09-27
378218  0.00    2018-07-27
378218  -450.00 2017-12-27
378218  0.00    2017-12-26

如果我想要ID的余额,例如10月1日,我可以使用查询:

    SELECT *
FROM 
    (SELECT id,
         created,
         balance,
         row_number()
        OVER (partition by id
    ORDER BY  Created) rn
    FROM db.table where created<='2018-10-01'
    ORDER BY  id, created) d
WHERE d.rn=1

如果我想要过去12或24个月中的所有余额(给定月份的余额定义为该特定月份的最后一个余额条目),该怎么办?这个想法是为了能够看到谁每月都有一个正余额。

因此,即使债务人在给定的月份中没有条目,查询也应该只返回最近的余额,即ID=70791

ID   |  Balance| Created
________________________

70791   358.44  2018-08-01
70791   344.10  2018-07-01
70791   344.10  2018-06-01
70791   347.26  2018-05-28

在上述情况下,2018-07-01的条目在该特定ID的数据集中不可用,因此我仅重复使用该日期的最新余额。我希望我的案子有意义。

谢谢。

0 个答案:

没有答案