Количество уникальных юзеров, совершивших целевое действие за 30 дней.
$$MAU = |{user \mid active(user, [t-30d, t])}|$$
Уникальные юзеры, которые сделали "значимое действие" в продукте за 30 дней — открыли приложение, совершили заказ, прочитали статью. Что именно считать "active" — решает команда. У Spotify это streamed >30s, у банка — открыл app.
SELECT count(DISTINCT user_id) AS mau
FROM events
WHERE created_at >= now() - interval '30 days'
AND event_type IN ('app_open', 'purchase', 'content_view');
from datetime import datetime, timedelta
mau = events[
(events.created_at >= datetime.now() - timedelta(days=30)) &
(events.event_type.isin(['app_open', 'purchase']))
].user_id.nunique()