Для отчёта нужно сохранить клиентов без подходящих заказов. Определите, как размещение фильтра влияет на результат двух вариантов запроса, и объясните механизм.
WITH clients(id) AS (
VALUES (1), (2)
), orders(client_id, status) AS (
VALUES (1, 'paid'), (1, 'cancelled')
)
SELECT 'where' AS variant, c.id, o.status
FROM clients c
LEFT JOIN orders o ON o.client_id = c.id
WHERE o.status = 'paid'
UNION ALL
SELECT 'on', c.id, o.status
FROM clients c
LEFT JOIN orders o
ON o.client_id = c.id
AND o.status = 'paid';