Postgresには、MEDIAN
の組み込み関数がありません。 。ただし、 Postgres wikiで利用可能な関数スニペットを使用して作成できます。
。このスニペットは、ulib_aggユーザー定義ライブラリ
の一部でもあります。 。
作成したら、SUM
などの集計関数と同じように使用できます。 またはSTRING_AGG
同様のwindow
仕様。 Postgresには、複数のwindow
を指定するオプションがあります。 コンマで区切られた集計関数の定義。
したがって、MEDIAN
を取得するには 以前の20レコードのうち、ウィンドウはこのクエリのように定義できます。
SELECT
j.* , array_agg(position) over w as previous_positions,
median(position) over w_20 as med_20
FROM jockeys j
WINDOW w as
( partition by name ORDER BY id rows between
unbounded preceding and 1 preceding
),
w_20 as
( partition by name ORDER BY id rows between
20 preceding and 1 preceding
)
その上、ROUND
を適用できます 10進数を切り捨てる場合に機能します。