Even if Campaign created a temporary table for these customers, joining it back to the purchase transaction table would entail pulling over approximately 90% of the 4 Gb rows (and discarding all transactions except for the last three months) to execute a
GROUPBY macro, for example.