WITH
fluffy_cats AS
(SELECT * FROM cats c WHERE c.description = 'fluffy'),
grouped_cats AS
(SELECT c.name, COUNT(*) as count, AVG(c.livesleft) as average_livesleft
FROM fluffy_cats c
GROUP BY c.name),
future_proof_cats AS
(SELECT * FROM grouped_cats c WHERE c.average_livesleft > 5.5),
SELECT * FROM future_proof_cats c
Make queries such as this one possible: