非常に単純な質問に答えるのに苦労しているため、これに取り組みすぎたと思います。小売環境で、クーポンを提供しているカテゴリにお金を費やしていない顧客は誰ですか?
次のデータを検討してください。
-- The offer ID and the category for which it is valid.
select * from t_offers
OFFER CAT_NBR
foo34 34
xxx30 30
baz60 60
bar50 50
-- The customer ID (HH) and their total spending by all
-- categories (not just the ones for which coupons are being offered).
-- PLEASE NOTE that when a customer has zero spend, there will NOT be an
-- entry in this table for that category.
select * from t_catspend
HH CAT_NBR SPEND
1 30 5
1 60 7
2 34 8
私が取得しようとしているのはこれです: の各オファーについて、そのオファーのカテゴリで支出していない各顧客t_offers
のID。HH
たとえば、オファー foo34 の場合、HH #1 にはそのカテゴリの支出が表示されないため、HH #1 を取得する必要があります (HH #1 のカテゴリ 34 のエントリはありません)。
したがって、null データを探すときの最初の本能は、外部結合です。というわけで、 で左結合してみましたcat_nbr
。しかし、それでは実際に支出している顧客しか得られません。そのカテゴリで支出のない顧客の ID を教えてもらう方法がわかりません。
問題があれば、これは Netezza にあります。
助けてくれてありがとう。