我想我在这方面工作太久了,因为我很难回答一个非常简单的问题:在零售环境中,哪些客户没有在我提供优惠券的类别上花钱?
考虑以下数据:
-- 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 没有条目)。
因此,查找空数据时的第一直觉是外连接。所以我尝试了左连接cat_nbr
。但这只会让我有消费的客户;我不知道如何告诉我在该类别中没有消费的客户的 ID。
如果重要的话,这是在 Netezza 上。
非常感谢您的任何帮助。