お客様からの購入履歴があります。ある顧客がある購入で複数の商品を購入する場合もあれば、単一の商品のみを購入する場合もあります。私が行単位で行うことは、発生した購入イベント(アイテム単位ではなく、チェックアウト単位でのチェックアウト)を特定することです。一意の購入日のカウント数
ソースデータベースの各行は、私が
されて欲しいものcust_id, purchase_date, sku
だから与えられたトランザクション中3アイテムを購入したお客様は、この
1, 01/01/01, dog1
1, 01/01/01, cat1
1, 01/01/01, mouse1
1, 01/02/01, wolf1
1, 01/03/01, lion1
ようになり、次のフィールドが含まれています
cust_id, purchase_date, sku, item_purchase_number_within_purchase, unique_purchase_date_across_dates
それは
のようになりますすなわち1, 01/01/01, dog1, 1, 1
1, 01/01/01, cat1, 2, 1
1, 01/01/01, mouse1, 3, 1
1, 01/02/01, wolf1, 1, 2
1, 01/03/01, lion1, 1, 3
、最初の日に、任意の購入数、1、2、および3として識別購入し三つの項目は、第二の購入日(2001年1月2日)には、単一のアイテムが購入ました、これは2回目の購買イベントで、3回目の購買日(2001年1月3日)にもう1つの単一アイテムが購入されました。
私はoracle10gでこれを実行しようとしています。私は自分が成し遂げていることを説明する方法がわからない。
これは、SQLは、私がこれまで
が FROM [テーブル]
おかげ
なぜ最初の3つはすべて同じ 'イベント'ですか?特定の日付の同じ顧客によるすべての購入が1つのイベントであると仮定していますか? –
顧客IDと日付が同じです。 –
はい、わかりやすくするために、この例では、特定の日付の同じ顧客によるすべての購入が1つのイベントであると仮定しています。合計のタイムスタンプを入れるよりも簡単でした。 –