Нулевые и незаполненные суммы по менеджерам
SQL, по которому посчитано
WITH bounds AS (
SELECT max(date) AS max_date FROM deals
),
deals_12m AS (
SELECT manager, amount
FROM deals
WHERE date >= (SELECT date_trunc('month', max_date) - INTERVAL '11 months' FROM bounds)
AND date <= (SELECT max_date FROM bounds)
),
by_manager AS (
SELECT
manager,
COUNT(*) FILTER (WHERE amount = 0) AS zero_amount_deals,
COUNT(*) FILTER (WHERE amount IS NULL) AS missing_amount_deals,
COUNT(*) AS total_deals,
round(COUNT(*) FILTER (WHERE amount = 0) * 1.0 / NULLIF(COUNT(*), 0), 4) AS zero_share
FROM deals_12m
GROUP BY manager
)
SELECT manager, zero_amount_deals, missing_amount_deals, total_deals, zero_share
FROM by_manager
ORDER BY zero_amount_deals DESC, missing_amount_deals DESC, manager
LIMIT 30