で毎週注文データを要約:私は必要なものは、私は次のようなデータを含むテーブルを持って一日のSQL Serverの
Item Date Customer
------------------------------
apple 01/01/2017 a
apple 01/01/2017 a
apple 02/01/2017 b
apple 05/01/2017 c
apple 06/01/2017 b
apple 06/01/2017 d
apple 07/01/2017 c
apple 09/01/2017 a
banana 01/01/2017 b
banana 02/01/2017 a
は、顧客がでその項目を買ったどのように多くのUNIQUEの日と項目ごとにグループ化されまとめたものですその日の週(すなわち、日+ 3日)だけでなく、その日にも。
それは次のようになります。
Item Date Weekly Customers Daily Customers
-----------------------------------------------------------
apple 01/01/2017 2 1
apple 02/01/2017 3 1
apple 05/01/2017 3 1
apple 06/01/2017 4 2
apple 07/01/2017 4 1
apple 09/01/2017 4 1
banana 01/01/2017 2 1
banana 02/01/2017 2 1
を、私は私が正しいと思い以下でアイテム、日、独自のデイリーお客様によりまとめることができた:
SELECT
item as 'Item', boughtDate as 'Date',
COUNT(DISTINCT(customer)) as 'Daily Customers'
FROM tbl1
GROUP BY Item, Date
私は実際にはそれぞれの別のアイテム+ 1日のコンボを取得し、その日のその日の週の合計のユニークな顧客を取得して(その日のいずれかの日に3日間)、これらの結果と結合する方法が本当に困っています。
私はいくつかのループとCTEで遊んできましたが、どのフィールドでも値が一意ではないという問題があるようです。私は思っていない、これを行う簡単な方法があると確信していますか?
ウィンドウ関数 –
2つのサブクエリと結合。あなたは、同じ週にある日付を判断するのに役立つテーブルを用意する(または作成する)必要があります。 – DVT
私はちょうどウィンドウ関数@JoePhillipsを見てきました。説明は有望でしたが、DISTINCTの使用はOVER句で許可されていないようですか?私は購入日を見るためにover節を使用していましたが、私は別個の顧客を数える必要があり、顧客は1日/週に複数回購入することができます。 – learnerDev