嗨,当我在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
关于如何解决的任何想法?这两个变量都是 double 的,因此根据文档(http://www.postgresql.org/docs/9.4/static/functions-aggregate.html),它应该起作用。

最佳答案

由于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";

10-05 17:50