我想在一周内根据精度在第二位的数据进行计算字段的滚动均值。这就是为什么我首先将日期截断为一周。
所以我的临时查询是
public class PurgeQueuesBeforeSuite extends TestRunnerBeforeSuiteSupport {
@Autowired
@Qualifier("connectionFactory")
ConnectionFactory queueConnectionFactory;
@Value("${my.out.queue.name}")
private String myOutQueueName;
@Override
public void beforeSuite(TestRunner runner) {
runner.purgeQueues(action ->
action.connectionFactory(queueConnectionFactory)
.queue(myOutQueueName));
}
}
我遇到的问题是AVG可以正常工作,但它是针对所有同一周的行单独完成的!我认为这是因为必须添加某种内部分组,但我遇到的问题是将其设想为平均值。
如果重要,我正在寻找适用于Redshift或PostgreSQL的解决方案。
答案 0 :(得分:1)
如果您想要累积平均值,那么:
SELECT week,
AVG(AVG(my_value)) OVER (ORDER BY week ASC) AS avg_my_value
FROM (SELECT id, DATE_TRUNC('week', created_at) AS week, my_value
FROM my_table
) t
GROUP BY week;
注意:
ORDER BY
是多余的。