#sql #apache-spark-sql
#sql #apache-spark-sql
Вопрос:
Я хочу, чтобы счетчик сбрасывался, когда он видит «LOAN_CASH_IN»
Все еще пытаюсь с window, но не могу найти решение.
select aux.*, count(1) over (partition by wallet_id
order by order_created_at asc)
from aux
Ответ №1:
Вы можете использовать два уровня оконных функций:
select aux.*,
row_number() over (partition by wallet_id, &rp
order by order_created_at asc
)
from (select aux.*,
sum(case when order_type_micro = 'LOAN_CASH_IN' then 1 else 0 end) over (partition by wallet_id order by order_created_at) &rp
from aux
) aux;
row_number()
больше подходит для того, что вы хотите, если вы действительно, действительно не понимаете, почему вы используете count()
в качестве накопительной оконной функции.
Комментарии:
1. забавно, вы ответили на мой «скрытый» вопрос. На самом деле я хотел получить среднее значение транзакций, которые пользователь совершает перед запросом кредита. Я использовал count(), потому что моим намерением было агрегировать.