Я пытаюсь вернуть сумму покупок за месяц с последней продажей аккаунта на одного клиента либо с использованием табличных расчетов, либо с помощью sql.
У меня есть данные с августа по январь, и каждый месяц имеет 100 000 учетных записей плюс несколько пользователей в учетной записи.Набор данных выглядит следующим образом:
Account User Item Plan Status date Sale
1 a toy unlimited open 1/1/2019 10
1 a book unlimited closed 1/5/2019 10
1 a toy unlimited open 1/10/2019 10
1 b toy unlimited open 1/1/2019 10
1 c book unlimited open 1/1/2019 10
1 d toy unlimited open 1/1/2019 10
1 d toy unlimited open 1/2/2019 10
1 f toy unlimited open 1/1/2019 10
1 a toy unlimited open 2/1/2019 10
1 a book unlimited closed 2/5/2019 10
1 a toy unlimited open 2/10/2019 10
1 b toy unlimited open 2/1/2019 10
1 c book unlimited open 2/1/2019 10
1 d toy unlimited open 2/1/2019 10
1 d toy unlimited open 2/2/2019 10
1 f toy unlimited open 2/1/2019 10
Желаемые результаты для каждой учетной записи, клиента, последней продажи и общего объема продаж за месяц должны выглядеть следующим образом:
1 a toy unlimited open 1/10/2019 30
1 b toy unlimited open 1/1/2019 10
1 c book unlimited open 1/1/2019 10
1 d toy unlimited open 1/2/2019 20
1 f toy unlimited open 1/1/2019 10
1 a toy unlimited open 2/10/2019 30
1 b toy unlimited open 2/1/2019 10
1 c book unlimited open 2/1/2019 10
1 d toy unlimited open 2/2/2019 20
1 f toy unlimited open 2/1/2019 10
Я пробовал таблицы с использованием
IF [PlanCount] > 1 and [T|F MaxDate] = True then [Plan] else [Plan] END
ИЛИ Row_Number в кусте, но с любым количеством столбцов, которое больше 0, в нем есть нулевое значение, при этом максимальная дата является причиной того, что план установлен для maxdate, но также равен нулю, когда условие maxDate имеет значение false.Где это должно быть сделано, на уровне etl или уровне расчета таблиц?