Короткий ответ
LOD-выражения (например, FIXED) позволяют считать агрегат на заданном уровне детализации независимо от текущих фильтров и измерений представления, поэтому показатель вроде «доля от собственного общего значения клиента» остаётся корректным даже при фильтрации вида.
Как это работает подробнее
Обычные агрегации и table calculations в Tableau подчиняются фильтрам и гранулярности текущего представления; {FIXED [Customer] : SUM([Amount])} считает сумму по клиенту на фиксированном уровне независимо от остальных измерений в виде, с учётом порядка применения context-фильтров.
Пример кода
Tableau LOD formulas
{FIXED [Customer ID] : SUM([Amount])}
SUM([Amount]) / SUM({FIXED [Customer ID] : SUM([Amount])})Что использовать на практике
- Применение. Используйте FIXED LOD для стабильных показателей по сущности (например, LTV клиента, отображаемый вместе с отфильтрованным видом); используйте INCLUDE/EXCLUDE, когда нужно добавить или убрать детализацию относительно уровня вида; учитывайте порядок вычислений между LOD, context-фильтрами и обычными фильтрами — он влияет на то, какие фильтры применяются до, а какие после агрегации LOD.
- Проверка. без context-фильтра по региону знаменатель LOD должен оставаться общей выручкой клиента, а не суммой только видимых строк.
Подводные камни
- Частые ошибки. Ожидание, что обычное агрегированное вычисляемое поле останется неизменным при фильтрации (оно реагирует на фильтры вида, в отличие от LOD); смешивание FIXED LOD с обычными фильтрами без перевода их в context-фильтры, что даёт неожиданный результат; пересчёт тяжёлого FIXED LOD на больших данных без оценки влияния на производительность.