我正在使用Postgresql。
假设我有一个transactions_table,其中只有两列:
-月份总数(整数)
-给定月份(浮动)的交易价值
棘手的部分:几个月来没有交易。这些月份根本不在表中。即我可能有汇总月份数字1、2、7、9(第3、4、5、6、8月没有行)的数据。
我需要创建一个新的averages_table,并将transactionstable中每个月的前12个月的平均交易价值(显然,没有合计的月份<12)。
我需要过去12个月的平均值,而不是之前12行的平均值。
我该怎么办?
答案 0 :(得分:1)
似乎您应该将数据限制在派生表(FROM子句中的子查询)中的所需时间段内,并在受限数据集上计算平均值,如下所示:
select month, product_id, avg(transaction_value)
from (
select month, product_id, transaction_value
from transactions
where month between 1806 - 12 and 1806
) s
group by month, product_id
其中1806
是所需时间的最后一个月(可能是查询参数)。