You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL调用percentile_cont计算中位数报错函数不存在如何解决

错误原因

你写的SQL存在两处问题:

  1. percentile_cont的WITHIN GROUP (ORDER BY)子句中错误加入了name字段:percentile_cont仅支持对单个数值类型的列计算百分位,你同时传入了字符类型的name和数值类型的value作为排序参数,PostgreSQL没有匹配入参类型的函数重载,因此触发类型不匹配报错。
  2. 缺少分组声明:你需要按Name分组计算中位数,需要显式增加GROUP BY name子句。

正确写法

SELECT 
  name,
  percentile_cont(0.5) WITHIN GROUP (ORDER BY value) AS value
FROM TableX
GROUP BY name;

结果验证

执行上述SQL后,Bob只有1条记录,中位数取本身100;Cathy的value列排序后为[100,200,500],0.5分位取值为200,和你期望的输出完全一致。

内容的提问来源于stack exchange,提问作者Helene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:06:04