Карта отношений не существует - PullRequest
0 голосов
/ 26 сентября 2019

Данные, которые я пытаюсь запросить и суммировать, являются ежедневными данными транзакций для держателей карт.Я пытаюсь агрегировать сначала на ежедневной основе, а затем на совокупной основе.Я могу успешно агрегировать по дням, но когда я добавляю следующую строку:

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

1 Ответ

0 голосов
/ 26 сентября 2019

У вас нет столбца day.Вы, вероятно, намереваетесь period:

select period, custs_spent_at_least_once,
       sum(custs_spent_at_least_once) over (order by period rows unbounded preceding) as running_total
from spenders
order by period desc;
...