Вы можете попробовать сделать это поэтапно и определить промежуточные столбцы. Попробуйте это, предполагая, что C - максимальная метка для событий.
Вы не публиковали данные, поэтому я создал что-то похожее.
([event] = "B") и (Max ([событие]) OVER (Intersect ([city], AllNext ([date]))) = «C») и (DateDiff («hh», [date], ValueforMax ([event], [date] ]) НАД (Пересечение ([город], AllNext ([дата])))) <= 1) </p>