私は売り手による毎週の売り上げを示すこの表を持っています。現在のクエリ(添付)には2つの列しかありません。 YTD(Year To Date)の売上データを伴う3番目の列を追加したいと思います。誰かがこれを支援してくれますか?現在のSQL文に何を追加できますか?週にYTDを表示
select t2.Source, coalesce(t1."This Week",0) "This Week"
from sellers t2 left outer join
(select Source,min("Week") as Week, sum(Sales) "This Week"
from salesdata
where Week = date_trunc('week', now())::date - 1
group by Source, Week) t1
on t1.Source = t2.Source
現在の結果:
Source This Week
Judith 18
Thedia 64
Alfonso 0
Michael 15
Jordan 0
望ましい結果:
SELECT source, week, "This Week", "YTD"
FROM (
SELECT source, week, coalesce(sum(sales), 0) AS "This Week"
FROM salesdata
WHERE week = date_trunc('week', now()) - 1) sw
JOIN (
SELECT source, coalesce(sum(sales), 0) AS "YTD"
FROM salesdata
WHERE date_trunc('year', week) = date_trunc('year', now()) sy USING (source);
:
Source This Week YTD
Judith 18 100
Thedia 64 150
Alfonso 0 258
Michael 15 487
Jordan 0 78
また、ytdの売上を計算する方法を説明してください。 –
ウィンドウの関数: 'sum(sales)over(パーティションはt2.sourceの注文を週別に)'でしょうか? –
date_trunc( 'week'、now()):: date - 1 ...この関数は、渡された日曜日のデータを返します。この場合、1/1/2016から1/1/2017になります。 –