Я пытаюсь написать запрос SQL Server, но не повезло, и мне было интересно, есть ли у кого-нибудь идеи о том, как достичь моего запроса.SQL Server Сравнение последующих строк для дубликатов
Что я пытаюсь сделать:
У меня есть таблица с несколькими столбцами, называющих те, что я имею дело с TaskId, StatusCode, Timestamp. Теперь эта таблица просто содержит задачи для одной из наших систем, которые работают в течение дня, а когда что-то выполняется, она получает временную метку и код состояния в зависимости от статуса для этой задачи.
Иногда случается, что таблица задач будет обновляться с новой меткой времени, но статус-код не будет изменен со времени последнего обновления задачи, поэтому для двух или более последовательных строк заданной задачи statusCode может быть одинаковым. Когда я говорю о последовательных строках, которые я имею в виду в отношении метки времени.
Итак, пример задачи 88 может состоять из двадцати строк в statusCode 2, после чего код состояния изменяется на что-то еще.
Теперь то, что я пытаюсь сделать без везения на данный момент, - это получить список из этой таблицы всех задач и кодов состояния и временных меток, но в случае, когда у меня есть более одной последовательной строки для задачи с тем же кодом состояния, я просто хочу взять первую строку с самой низкой меткой времени и игнорировать остальную часть строки до тех пор, пока не изменится код состояния для этой задачи.
Чтобы сделать это проще, вы можете предположить, что у меня есть taskid, который я фильтрую, поэтому я просто смотрю на одну задачу.
Есть ли у кого-нибудь идеи относительно того, как я могу это сделать или что-то, что я, возможно, прочитал, чтобы помочь мне?
Thanks Irfan.
Я забыл упомянуть что я использую SQL SERVER 2005 – Iffy
то, что вы пытаетесь сделать, звучит очень процедурно для меня - так что, возможно, вам будет лучше делать это в чем-то вроде C#, а не пытаться сгибать T-SQL. –
Эй, Марк, вы знаете, что я думал, но причина, по которой я пытаюсь это сделать, - уменьшить нагрузку на SQL. Без этой логики для некоторых задач я могу получить несколько тысяч строк из-за большого количества повторяющихся строк кодов состояния. Если я могу уменьшить набор результатов, чтобы содержать только разные строки на основе кода состояния, это значительно ускорит процесс. – Iffy