Hanukkah of Data 2022: Puzzle 8
Similar to the Advent of Code, the Hanukkah of Data (archive) was released in December 2022.
I don’t have time to do that during the holidays, so January 2023 it is for me.
1. Plan of attack
I’m looking for:
-
someone who likes to collect stuff
-
someone who owns an entire set of Noah’s collectibles
-
collections usually require people to buy more than 1 time the full set
-
someone with a male name
Looking at all products whose description starts with Noah’s, I can see that
most of them start with COL and some start with TOY.
I assume COL stands for collection, and I’ll limit myself to those.
2. Implementation
This time, everything should be doable in SQL right away via DBeaver.
select
name,
phone,
count(oi.sku) as sku
from
customers c
join orders o on
o.customerid = c.customerid
join orders_items oi on
oi.orderid = o.orderid
and oi.sku = p.sku
join products p on
p.sku = oi.sku
where
p.sku like 'COL%'
and p."desc" like 'Noah%'
group by
name,
phone
order by
sku desc;
3. Result
This finds all the people who ordered sku as part of a collection, so it’s not
very specific.
However, the person having bought the most of those items did so 9 times more than the rest of customers. He has a male name.
It’s the right result.
Time to solve: 9 minutes.