Есть две таблицы от двух источников данных:
Table1(Field1, Field2, Field3, Field4, Field5, Field7)
Table2(Field1, Field2, Field3, Field7)
При сборке таблицы агрегатов для Tabular ssas данные сводятся в одну таблицу фактов через:
select t1.Field1, t1.Field2, t1.Field3, t1.Field4, t1.Field5, t2.cnt as cnt_all, t1.cnt
from
(select Field1, Field2, Field3, Field4, Field5, count(distinct Field7) as cnt
from Table1
group by Field1, Field2, Field3, Field4, Field5) as t1
left join
(select Field1, Field2, Field3, count(distinct Field7) as cnt
from Table2
group by Field1, Field2, Field3) as t2
on t2.Field1 = t1.Field1 and t2.Field2 = t1.Field2 and t2.Field3 = t1.Field3
т.е получается, что выборка из Table1 более детализированная, плюс не для всех строк Table1 может найтись подходящая в Table2
В модели нужно сделать меру, которая отражает отношение cnt из Table1 к cnt из Table2, т.е.:
sum(cnt)/sum(cnt_all) из моего скрипта. Но суммировать cnt_all нельзя, т.к. эта цифра не учитывает разбиения по полям Field4 и Field5, которые есть в Table1, но нет в Table2.
Собираюсь сделать отдельные меры для числителя и знаменателя и потом общую меру для отношения.
Числитель имеет очень простую формулу, т.к. на него должны влиять все поля (Field1, Field2, Field3, Field4, Field5)
А возможно ли с помощью DAX реализовать меру, которая вычислит sum(cnt_all) с учетом примененных фильтров только Field1, Field2, Field3 и причем по уникальной выборке Field1, Field2, Field3, sum_cnt (т.к. sum_cnt идет из Table2, а там разбиение по Field1, Field2, Field3) посчитает sum(cnt_all)?
Или у меня архитектурно задумка нереализуема?