Если нужно посчитать кол-во дней от момента регистрации клиента до первых 100 тыс. за месяц, то можно сделать это через волшебную, фантастическую функцию сumsum. 🐍
SQL выгрузкой вытаскиваем данные о номере клиента, дате его регистрации, дате оплаты, ну и сумму его выручки конечно. Отсортировано по order by account_id, payment_date. То есть сверху будут самые ранние даты выручки. Получаем вот такой df с колонками:
|account_id) | account_reg_date |payment_date|amount|
✏️ Группируем по аккаунту, создаем новую колонку с кумулятивной суммой, то есть которая накапливается (см. пример на скрине)
df['cumsum_amount'] = df.groupby(['account_id '])['amount'].cumsum()
✏️ Потом мы оставляем только те строки, где накопленная выручка больше или равна ста тысяч
df_100k = df[df.cumsum_amount >= 100000]
✏️Теперь с помощью first() отбираем первую строку у каждого клиента
df_100k = df_100k.groupby('ACCOUNT_ID', as_index = False).first()
✏️И теперь можем считать разницу в днях между датой оплаты и датой регистрацией клиента.
df_100k['datediff_100k_reg'] = (df_100k.payment_date - df_100k.account_reg_date).dt.days