2016-04-24 19 views
0

こんにちは、私はPostgresSQLの機能CORR(倍精度、倍精度)が存在しない - のPostgresSQL

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)に従って動作するはずです。

+1

あなたは '選択バージョンを()を実行することができ;'と 'ショーのsearch_path; '? –

+0

Tx Clement、私は確認しました。それは確かに8.02(AWSのRedshift)です。さらなる調査の後、実際にはそうです。彼らはcorr()をサポートしていません。あなたが示唆しているように、実際にはバージョンの問題です。多くのご協力ありがとうございます! – user3507882

答えて

0

corrはPostgreSQL 8.2以降に存在するため、私はあなたに悪いsearch_path設定があると推測します。

この設定では、スキーマプレフィックス以外のオブジェクトを使用するときの参照先をPostgreSQLに指示します。あなたが明示的にスキーマを指定した場合、それが動作するはず

(私はこの機能がpg_catalogに位置していることを発見する\df corrを使用)

select 
    pg_catalog.corr(m07_selling_price_total_usd, m12_amount_of_commission_earned_usd) 
from "order";