在PostgreSQL中查找日期的中位数



我想知道是否有办法在PostgreSQL中找到"中值"日期。目标是根据中位数获得所有日期中间的日期。

我尝试了以下修改的中值函数:

select
percentile_cont(0.5) within group (order by date)
from cte

通过尝试这样做,我得到以下错误消息:

SQL Error [42883]: ERROR: function percentile_cont(numeric, timestamp without time zone) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 12

由于不支持日期,我想知道是否有其他方法可以计算日期的中值。

感谢您的任何意见!

您可以将日期值强制转换为整数,然后使用percentile_cont函数获取中值。像这样,

SELECT 
percentile_cont(0.5) within group (ORDER by cast(extract(epoch from dateCol1) as integer))
FROM table1

上面给出了中间日期,但用数值表示,要将其转换回日期类型,请使用to_timestamp函数,如

select to_timestamp(1638662400)::date
#gives 2021-12-05

相关内容

  • 没有找到相关文章

最新更新