计算 postgresql 数组的每个元素的中位数

问题描述

我有一个包含 200 个整数数组的“强度”列的 postgresql 表“样本”。我想计算一组样本的中位数,对于数组的每个元素,例如强度 [1] 的中位数,强度 [2] 的中位数,...,强度 [200] 的中位数。如果列由单个整数组成,那么使用 percentile_disc 函数会很容易:

select percentile_disc(0.5) within group (order by intensity) from samples where...

但是,由于我的列由一个数组组成,因此这不起作用。运行代码给出了强度 [1] 的正确答案,但所有其他值都是错误的(我怀疑代码只是从具有强度中值 [1] 的样本中提取了整个 200 个整数)。

我可能可以使用“for”循环来获取数据,但必须有使用 unnest 或类似内容的更优雅的解决方案......

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)