回答

收藏

Greenplum中的滚动(移动)中值

技术问答 技术问答 216 人阅读 | 0 人回复 | 2023-09-12

我想计算Greenplum 中 列的 滚动中位数 ,即如下:
1 y1 _& ~9 }% j* S+ b0 N' `|  x | rolling_median_x |
. H4 A: u; S: c* w  ?% T& y| -- + ---------------- |
$ S1 x# t( v) Y2 n( g7 t|  4 |                4 |
5 y- C# M9 C1 ^$ G5 y; u& i|  1 |              2.5 |
( p$ B# i  N. `. x|  3 |                3 |
9 f) R1 S" d- f0 x' M|  2 |              2.5 |4 C4 c  c& b& V) d7 f. k) O
|  1 |                2 |. I( b$ d+ p3 Z9 p1 j" k5 m
|  6 |              2.5 |4 X% L+ S0 w3 `4 U& T& l  O
|  9 |                3 |, s7 G. S6 Y% r+ ~4 W: U
x是一个整数,每行rolling_median_x显示x当前行和前一行的中位数。例如第三行rolling_median_x =
1 k; l7 e+ G4 J1 y4 Q; n, p! B* Qmedian(4, 1, 3) = 3。
! Q# F3 i6 _) F7 _1 ?# I到目前为止我发现的事情:9 X1 s5 {: ~6 ^, ]( u
该median函数不能用作框架窗口函数,即median(x) OVER(RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)4 f4 n$ ~# q4 G: ~# [9 F
许多其他功能(例如percent_rank或)也是如此nth_value
4 \! s. ^, y8 L  e此版本的Greenplum不支持递归自联接
9 K$ s5 s1 s9 ?% s3 X" J
& i( @1 O5 D5 U) z( c
事实上,我找不到合适的文档,有关这些文档可以在Greenplum中用作框架窗口函数…
) O6 X+ L9 y# B% W1 ~9 l/ }我正在使用Greenplum 4.3.4.0(基于Postgres 8.2.15),不幸的是更新不是一种选择。
0 W7 ~$ v* c, W2 O+ A                ! d$ q2 v* N. e1 y. T' v$ f
解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则