В таблице событий у меня есть столбец, в котором указывается количество секунд с момента последнего события, записанного для определенных пользователей.Время первого события, очевидно, равно нулю, так как никаких предыдущих событий не существует (порядок удаления):
9fb63b905a004106bd26c80a5caec52b 9 2012-01-12 00:05:56.890
9fb63b905a004106bd26c80a5caec52b 11 2012-01-12 00:05:47.097
9fb63b905a004106bd26c80a5caec52b 10 2012-01-12 00:05:36.713
9fb63b905a004106bd26c80a5caec52b 6 2012-01-12 00:05:26.963
9fb63b905a004106bd26c80a5caec52b NULL 2012-01-12 00:05:20.500
У меня есть другая таблица, в которой у меня есть некоторые значения триггера.Например, 10 секунд, 30 секунд, 90 секунд со значением триггера, которое я хочу прочитать, когда каждая цель поражена.
После того, как событие записано, у меня есть запрос, который проверяет, есть ли время запускабыло превышено:
SELECT TriggerValue, SUM(p.LastEventTimeSpan)
FROM PageVisitEvents p RIGHT JOIN Segments s ON p.CampaignID = s.CampaignID
WHERE p.VisitorID = '9fb63b905a004106bd26c80a5caec52b'
GROUP BY TriggerValue
Это прекрасно работает, если я хочу запускать только один раз.Однако приведенный выше запрос возвращает следующее (триггерное значение) общее время):
30 357
60 357
90 357
С одним значением выполнение сравнения просто прекрасно, однако мое сравнение теперь показывает только 90, когда это время было превышено, иничего между ними.
Когда встречается каждый триггер, я хотел бы вернуться только для этого триггера.Например, когда время между событиями достигает 35 секунд, возвращайте только триггерное значение в течение 30, а не 10 секунд.
Могу ли я получить некоторые советы о том, как справиться с этим?
Благодаря.