У меня есть таблица с именем SessionEvents.

Я пытаюсь создать столбец, который представляет прошивку, установленную на компьютере, на более позднюю версию. быть в состоянии фильтровать сообщения только для определенного программного обеспечения.
В настоящее время мой запрос SQL выглядит следующим образом. (Основано на ответе Адамламара в Как эффективно выбрать предыдущее ненулевое значение? с небольшими изменениями.)
Я использую JOIN, поскольку machine_id находится в связанной таблице с именем Сессии.
SELECT *,
first_value(message_info) over (partition by value_partition order by event_time) as ColumnFirmware
FROM(
SELECT SessionEvents.event_time, SessionEvents.message_type, SessionEvents.message_info, Sessions.machine_id,
sum(case when message_type <> 1 then 0 else 1 end) over (partition by machine_id order by event_time) as value_partition
FROM SessionEvents
JOIN Sessions ON SessionEvents.SessionId=Sessions.Id) t
-- WHERE machine_id = 1
Это работает для одной машины, но я не могу найти способ правильно реализовать это для нескольких машин. Как мне изменить запрос для принятия, если для нескольких машин?
(Данные извлекаются из базы данных Azure SQL)