Я ищу лучший подход к этому вопросу, и пока мне не повезло.Я использую Microsoft SQL Server 2008.
Итак, вот пример данных пользователя:
=====================
Имя Статус Дата
============================ *
BOB Active 2011-03-07
БОБ активен 2011-03-11
БОБ отключен 2011-03-15
БОБ отключен 2011-03-21
БОБ активен 2011-03-23
ЛПП Актив 2011-03-28
=====================
Я хочу, чтобы это было сгруппировано так, чтобы оно показывало, когда пользователь фактически изменил статус, а не в следующий раз, когда они были проверены, если результат остался прежним, так что запрос будет выглядеть следующим образом:
======================
BOB Active 2011-03-07
BOB отключен 2011-03-15
ЛПП Активный 2011-03-23
======================
Это данные, которые я не делаюесть какой-нибудь доступ к тому, как он создается.
Есть идеи о том, как лучше всего получить эти данные так, как мне нужно?Имейте в виду, что это для тысяч записей, и производительность следует принимать во внимание, если это возможно.Я не могу придумать способ сделать группировку так, чтобы она не сгруппировала «Активировать» вместе и не использовала бы агрегатную функцию MIN.
Есть ли способ выполнить цикл и заставить данные выглядетькак это для группировки и группы в последнем столбце?Будет ли это даже лучшим подходом?
======================
Имя Статус Дата Группа
======================
BOB Active 2011-03-07 1
BOB Active 2011-03-11 1
BOB отключен 2011-03-15 2
BOB отключен 2011-03-21 2
BOB активен 2011-03-23 3
BOB Active 2011-03-28 3
====================== * 10= *
Все мои поиски не сработали, если бы кто-то мог дать мне ключевое слово для поиска, чтобы получить меня на правильном пути, который был бы очень признателен.