このクエリは、今年と前年の現在までの価格と平方フィートの両方の年初来の数値を提供します。これは、この場合は 1 から 7 までの週に関する今年と前年度の累計に似ています。今年と前年 (2016 年の第 7 週は 2016 年 2 月 22 日に終了)。サブクエリを使用する理由は、これがこの状況を回避する唯一の方法であるためです。そしてもちろん、このクエリを実行するよりも短く実行可能な代替手段があると思われる場合は、アドバイスをお願いします。
Actual_Sale_Date
は 7 日間すべてのデータを保持していますが、2016 年 2 月 22 日 (2016 年の第 7 週で終わる日曜日) と 2017 年 2 月 19 日 (2017 年の第 7 週で終わる日曜日) は日曜日を切り捨てています。
この関数を試してみ"Actual_Sale_Date" = date_trunc('week', now())::date - 1
ましたが、渡された日曜日で終わる前の週のデータのみが返されます。私はpostgresqlに存在しないinterval
ので見てみましたが、それdateadd
をうまく使うことができませんでした。
私のクエリ:
select (money(Sum("Price") / COUNT("Price"))) as "Avg_Value YTD",
Round(Avg("Price"/"Sq_Ft"),+2) as "Avg_PPSF YTD",
(select
(money(Sum("Price") / COUNT("Price"))) from allsalesdata
where "Actual_Sale_Date" >= '01/01/2016' AND "Actual_Sale_Date" < '02/22/2016'
and "Work_ID" = 'SO') AS "Last Year at this time Avg_Value",
(select Round(Avg("Price"/"Sq_Ft"),+2)
from allsalesdata
where "Actual_Sale_Date" >= '01/01/2016' AND "Actual_Sale_Date" < '02/22/2016'
and "Work_ID" = 'SO') AS "Last Year at this time Avg_PPSF"
from allsalesdata
where "Actual_Sale_Date" >= '01/01/2017' AND "Actual_Sale_Date" <'02/20/2017'
and "Work_ID" = 'SO'
サンプルデータ:
Price Sq_Ft Actual_Sale_Date Work_ID
45871 3583 01/15/2016 SO
55874 4457 02/05/2016 SO
88745 4788 02/20/2016 SO
58745 1459 01/10/2016 SO
88749 2145 01/25/2017 SO
74856 1478 01/25/2017 SO
74586 4587 01/31/2017 ABC
74745 1142 02/10/2017 SO
74589 2214 02/19/2017 SO