函数 corr(双精度, 双精度) 不存在 -- PostgreSQL
Posted
技术标签:
【中文标题】函数 corr(双精度, 双精度) 不存在 -- PostgreSQL【英文标题】:function corr(double precision, double precision) does not exist -- PostgreSQL 【发布时间】:2016-08-17 23:02:17 【问题描述】:您好,当我在 PostgreSQL 中运行简单的关联查询时
select
corr(m07_selling_price_total_usd, m12_amount_of_commission_earned_usd)
from order;
我收到以下错误:
ERROR: function corr(double precision, double precision) does not exist
关于如何解决它的任何想法?这两个变量都是双精度的,所以根据文档 (http://www.postgresql.org/docs/9.4/static/functions-aggregate.html) 它应该可以工作。
【问题讨论】:
你能运行select version();
和 show search_path;
吗?
Tx Clement,我查了一下,确实是 8.02(AWS 上的 Redshift),经过进一步研究,情况确实如此——它们不支持 corr()。正如您所建议的,这确实是版本问题。非常感谢您的帮助!
【参考方案1】:
由于corr
自 PostgreSQL 8.2 以来就存在,我猜你的search_path
配置不好。
当您使用非模式前缀对象时,此配置告诉 PostgreSQL 在哪里查找。
如果你明确指定模式应该可以工作(我用\df corr
发现这个函数位于pg_catalog
)
select
pg_catalog.corr(m07_selling_price_total_usd, m12_amount_of_commission_earned_usd)
from "order";
【讨论】:
以上是关于函数 corr(双精度, 双精度) 不存在 -- PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章
“查询结构与函数结果类型不匹配。返回类型双精度与第 1 列中的预期类型整数不匹配。”?