stddev_pop()必须将avg()计算为标准偏差完整计算的一部分(除非有我不知道的快捷方式)。
对于上下文,目标是测试这两个geom列之间的平均值差异。
为了避免重新计算avg(),有没有办法访问它?
下面是一个查询示例:
select
avg(st_length(cons.geom)) as source_avg_length,
avg(st_length(csn.geom)) as target_avg_length,
stddev_pop(st_length(cons.geom)) as source_std_length,
stddev_pop(st_length(csn.geom)) as target_std_length
from
received.conflation_osm_no_service cons,
received.conflation_stress_network csn ;
以及 EXPLAIN ANALYZE
这让我想到,如果我请求avg()和stddev\u pop(),它只会执行avg()计算一次并重用它?:
2条答案
按热度按时间w1jd8yoj1#
要将两个表合并为一个结果,必须在合并前进行聚合:
或为每个表获取一行:
jobtbby32#
根据评论,我把执行速度慢归因于多个平均聚合,而实际上这是由于不必要的连接。