Хорошо.Прежде всего позвольте мне извиниться, если этот вопрос был рассмотрен.Я посмотрел , но ни одно из решений не касалось деталей моей проблемы.
У меня есть таблица, содержащая более 160 миллионов строк данных о состоянии сотрудников / серверов, отслеживающих время.Я хочу создать подмножество этих данных и удалить повторения, которые происходят повсюду, НО сохраняет последовательность изменений по мере их возникновения.Сокращение для большинства сотрудников будет с 700 строк (и растет) до 1.
Вот упрощенный пример того, к чему я пытаюсь добраться:
Given:
RowID Employee Server Timestamp
----- -------- ------ ---------
5 E000001 Serv-B May01
4 E000001 Serv-A Apr01
3 E000001 Serv-B Mar01
2 E000001 Serv-A Feb01
1 E000001 Serv-A Jan01
Doing a "Min(Timestamp) Group By Employee, Server" would yield:
Employee Server Timestamp
-------- ------ ---------
E000001 Serv-B Mar01
E000001 Serv-A Jan01
.
What I need is:
Employee Server Timestamp
-------- ------ ---------
E000001 Serv-B May01
E000001 Serv-A Apr01
E000001 Serv-B Mar01
E000001 Serv-A Jan01
Таблица ипроцесс, который передает его, не принадлежит нашей группе, поэтому я не могу повлиять на решение там, и я бы предпочел не застрять с копией всей вещи.Я не могу реально сделать подход курсора / RBAR, учитывая размер таблицы.Если меня загнали в угол, я могу написать прикладную программу для этого, но мне было интересно, есть ли у какого-нибудь из богов из SQoLympus мудрость сделать это в хранимой процедуре.Заранее спасибо!
Редактировать: Это SQL Server 2008 - Извините, что не упомянул это.