Может предложить вам создать другую таблицу, которая будет содержать различные значения (я предполагаю, что уникальная комбинация Date <-> Subject
)
Сценарий ниже создаст OverallDuration
таблица будет содержать различные значения продолжительности длякомбинация Date <-> Subject
. Таким образом, у вас будет одно дополнительное поле OverallDuration
, которое можно использовать в KPI.
Таблица OverallDuration
связана с таблицей RawData
(которая связана с таблицей Calendar
), что означает, что при расчете OverallDuration
будут учитываться выборки Subject
, LessonYear
, LessonMonth
и т. Д. (Посмотрите на рисунок выбора Math
ниже)
RawData:
Load
*,
// Create a key field with the combination of Date and Subject
Date & '_' & Subject as DateSubject_Key
;
Load * Inline [
Date, Duration, Subject, Attendee
1/10/2019, 2:00, Math, Joe Bloggs
1/10/2019, 2:00, Math, John Doe
2/10/2019, 3:00, English, Jane Doe
6/11/2019, 1:00, Geog, Jane Roe
17/12/2019, 0:30, History, Joe Coggs
];
// Load distinct DateSubject_Key and the Duration
// converting the duraion to time.
// This table will link to RawData on the key field
OverallDuration:
Load
Distinct
DateSubject_Key,
time(Duration) as OverallDuration
Resident
RawData
;
// Creating calendar table from the dates (distinct)
// from RawData and creating two additional fields - Month and Year
// This table will link to RawData on Date field
Calendar:
Load
Distinct
Date,
Month(Date) as LessonMonth,
Year(Date) as LessonYear
Resident
RawData
;
После перезагрузки приведенного выше сценария ваше выражение будет просто sum( OverallDuration )
И вы можете увидеть результат вприведенная ниже сводная таблица:
Общая продолжительность составляет 06:30
часов, а для Math
составляет 02:00
часов:
И ваша модель данных будет выглядеть так:
Мне нравится сохранятьмои данные календаря в отдельной таблице, но вы можете добавить поля месяца и года в основную таблицу, если хотите