DAX Query (с использованием функций FIlter и MAX), рассчитайте общий объем продаж за последние 30 дней - PullRequest
1 голос
/ 09 апреля 2020

Я новичок в DAX и обнаружил меру, показанную ниже:

30 Day Running Total = CALCULATE([Total Sales], 
    FILTER (ALL (Dates), Dates[Date]>(Dates[Date]) -30 && Dates[Date] <= (Dates[Date] )))

, т. Е. Чтобы рассчитать общий объем продаж за последние 30 дней совокупным способом для данных с 1 января 2018 года по 30 декабря 2021 года, выше меры я не могу понять

Мое понимание такое, как показано ниже, пожалуйста, дайте мне знать, где я двигаюсь в неправильном направлении

  1. FILTER ( ALL(Dates) -> Удаляет все Фильтры означают, что в полной таблице берется дата от минимума до максимума, то есть в период с 1 января 2018 года по 30 декабря 2021 года

  2. Dates[Date]>MAX(Dates[Date]) -30 -> «Принимает общий объем продаж из текущей строки в стол минус 30 дней ». Например, если расчет DAX производится 30 января 2018 года, то он учитывает все общие продажи с 1 января 2018 года по 30 января 2018 года

  3. Тогда зачем нам упоминать еще один фильтр Dates[Date] <= MAX(Dates[Date] ) ?

Заранее спасибо за ваше время

С уважением Сумит Малик

1 Ответ

0 голосов
/ 11 апреля 2020

Представьте, что ваша основная проблема - точка (3)

, почему мы должны упомянуть еще один фильтр Даты [Дата] <= MAX (Даты [Дата])? </p>

Ваши сомнения верны, если данные чистые, вам не нужно определять этот верхний фильтр, потому что теоретически с учетом продаж за 30 дней go, после сегодняшнего дня не должно быть продаж.
К сожалению, часто данные грязные, и в будущем могут быть Продажи . Таким образом, определение верхней границы является наилучшей практикой, позволяющей избежать подобных проблем с данными. Помните, что в программной инженерии вы программируете, думая, что это наихудший сценарий, поэтому определение верхней границы не вредит :)

...