Добрый день, уважаемые знатоки!
Подскажите, пожалуйста, в чем может быть ошибка:
Использую меру для подсчета нарастающего итога по продажам (sales) в разрезе продукта (truck_id).
В таблице sales около 300.000 строк (продажи), в неё добавлен столбец [Index]
Мера вычисляет очень долго - порядка 40-60 секунд.
Если поставить в 3-й строке вместо VAR car_index = SELECTVALUE(sales[Index]) (использовал и MAX(sales[Index]) - разницы нет) любое число (пробовал даже 300000) - работает быстро. Загвоздка именно в использовании индекса.
Может сможете подсказать, как можно ускорить её работу?
Текст меры:
sales_runn_total =
VAR cur_truck_id = SELECTVALUE(sales[truck_id])
VAR cur_index = SELECTVALUE(sales[Index])
VAR run_total = CALCULATE(SUM(sales[Стоимость]), FILTER(ALL(sales), sales[Index]<=cur_index))
RETURN
SWITCH(TRUE(),
ISINSCOPE(sales[Index] && cur_truck_id <> BLANK(), run_total,
TRUE(), BLANK()
)
Подскажите, пожалуйста, в чем может быть ошибка:
Использую меру для подсчета нарастающего итога по продажам (sales) в разрезе продукта (truck_id).
В таблице sales около 300.000 строк (продажи), в неё добавлен столбец [Index]
Мера вычисляет очень долго - порядка 40-60 секунд.
Если поставить в 3-й строке вместо VAR car_index = SELECTVALUE(sales[Index]) (использовал и MAX(sales[Index]) - разницы нет) любое число (пробовал даже 300000) - работает быстро. Загвоздка именно в использовании индекса.
Может сможете подсказать, как можно ускорить её работу?
Текст меры:
sales_runn_total =
VAR cur_truck_id = SELECTVALUE(sales[truck_id])
VAR cur_index = SELECTVALUE(sales[Index])
VAR run_total = CALCULATE(SUM(sales[Стоимость]), FILTER(ALL(sales), sales[Index]<=cur_index))
RETURN
SWITCH(TRUE(),
ISINSCOPE(sales[Index] && cur_truck_id <> BLANK(), run_total,
TRUE(), BLANK()
)
Изменено: - 18.10.2024 12:26:09