平均取引サイズを月ごとに取得するテーブルを作成しており、MoM変更の列を追加したいと考えています。理想的な最終テーブルには、月、その月のAVG取引サイズ、前月からの平均取引サイズの変更があります。私は2015年のデータだけを見ているので、12行が必要ですが、代わりに私が持っているすべての日付の行を取得しています。RedshiftのMoM変更の計算に役立つ
select
to_char(cast(closedate as date),'Month') as month,
avg(amount) as average_amount,
ROUND((1-(AVG(amount)/nullif(lag(avg(amount),1) over (order by closedate),0)))*100,1) as MoM_change
from sf.sf_opportunity
where to_char(cast(closedate as date),'YYYY') = '2015'
GROUP BY closedate
ORDER BY closedate ASC
;
編集:グループ1とグループ2の両方が機能しません。月のように作成/割り当てられたフィールドによるグループ化は、赤方偏移では機能しません。あなたはまた、あなたがする必要はありません
Group by 1
によってグループに月置く必要があります
to_char(cast(closedate as date),'Month')
グループ内でto_char(キャスト(日付として閉じてください)、 '月')を試してみてください。 – Kostya
私はこれを試してこのエラーを思い出しました:エラー:GROUP BY句に "sf_opportunity.closedate"集計関数で使用されています – Berra2k
私はここでクローズドを変更する必要があると思います "ROUND((1-(AVG(amount)/ nullif(lg(avg(amount)、1)over(order by closedate)、0)))* 100 、1)も同様に " – Kostya