Данные, которые я пытаюсь запросить и суммировать, являются ежедневными данными транзакций для держателей карт.Я пытаюсь агрегировать сначала на ежедневной основе, а затем на совокупной основе.Я могу успешно агрегировать по дням, но когда я добавляю следующую строку:
sum(custs_spent_at_least_once) over (order by day rows unbounded preceding) as cum_total
я получаю сообщение об ошибке "карта отношений не существует"
У меня другой запрос, который выполняет что-то подобное ста же строка кода в вопросе.
Вот мой код для агрегирования по дням и на накопительной основе.
with spenders as (
select
[first_trans_date:aggregation] as period,
count(member_uuid) as custs_spent_at_least_once
from
(
select distinct member_uuid, min(postdate_and_posttime) as first_trans_date
from
(
(
select
card_reference_number, postdate_and_posttime
, dense_rank() over(partition by card_reference_number order by postdate_and_posttime) as rank
from
i2c.posted
where
[is_crn_post_launch] and [is_merchant_trans]
group by card_reference_number, postdate_and_posttime
)
as posc
left join card on card.i2c_ref_id = posc.card_reference_number
)
group by member_uuid
)
group by period
order by period desc
)
select
period
, custs_spent_at_least_once
, sum(custs_spent_at_least_once) over (order by day rows unbounded preceding) as cum_total
from spenders
order by period desc