Сначала попробуйте сами: на собеседовании подсказки не будет.
Долю считаем условным агрегатом поверх всех заказов месяца: count(*) FILTER (WHERE lower(status) = 'refunded'). lower нужен, потому что в данных статус встречается в разном регистре.
Деление целых чисел в PostgreSQL целочисленное, поэтому умножаем на 100.0 до деления, иначе доля всегда будет 0. round(..., 2) работает с numeric, а 100.0 как раз numeric.
SELECT date_trunc('month', created_at)::date AS month, count(*) AS orders, count(*) FILTER (WHERE lower(status) = 'refunded') AS refunded, round(100.0 * count(*) FILTER (WHERE lower(status) = 'refunded') / count(*), 2) AS refund_pct FROM orders GROUP BY 1 ORDER BY 1