で同じテーブルからの値の間の比較:は、私は次の表を持っているPostgreSQLの
id partid orderdate qty price
1 10 01/01/2017 10 3
2 10 02/01/2017 5 9
3 11 01/01/2017 0.5 0.001
4 145 02/01/2017 5 18
5 10 12/12/2016 8 7
6 10 05/07/2010 81 7.5
基本的に私は24 months
の期間で同じ部分の他の購買への部品の最も最近の購入を比較したいです。その点については、id=2
〜id = 1,5
を比較してください。
最新のorderdate
の価格が過去24ヶ月以内のその部分の平均価格より大きいかどうかを確認したいと思います。私はまた、各パーツの最新の受注日を知る必要があり
partid avgprice
10 (3+9+7)/3=6.33 (7.5 is out of range)
11 0.001
145 18
:
id partid
2 10
3 11
4 145
をしてから、私は、ID = 2かどうかを確認する必要があり
だから最初に私は、平均価格を計算する必要があります、id = 3、id = 6(最新の購入)は平均よりも大きい。彼らは私が彼らのpartid
を返す必要がある場合。
は、だから私はこのようなものが必要です:私は、最新のを見つけることができるかどうかはわかりません ...
9>6.33
ので、今私の質問に
id partid avgprice lastprice
2 10 6.33 9
3 11 0.001 0.001
4 145 18 18
を最後に、私はpartid=10
を返却する必要がありますPostgreSQL
でご注文ください。 私が試した:
select id, distinct partid,orderdate
from table
where orderdate> current_date - interval '24 months'
order by orderdate desc
これが与える:
ERROR: syntax error at or near "distinct".
私はここで失われたのビット。私は何をしたいのか分かっていますが、それをSQLに変換することはできません。誰でも助けることができますか?