Похоже, вы хотите агрегировать:
select TrackUserId, EventTime, max(EventValue)
from t
where EventName = 'time.today'
group by TrackUserId, EventTime;
Для вашей выборки данных это не нужно, поскольку все времена событий разные, поэтому вам просто нужны эти три строки.
Если выЕсли вам нужна самая последняя строка для TrackUserId
, то вы можете использовать коррелированный подзапрос:
select t.*
from t
where t.EventName = 'time.today' and
t.EventTime = (select max(t2.EventTime)
from t t2
where t2.TrackUserId = t.TrackUserId and
t2.EventName = 'time.today'
);
Вы можете настроить это для дня:
select t.*
from t
where t.EventName = 'time.today' and
t.EventTime = (select max(t2.EventTime)
from t t2
where t2.TrackUserId = t.TrackUserId and
convert(date, t2.eventTime) = convert(date, t1.eventTime) and
t2.EventName = 'time.today'
);