Как добавить порядковый номер для групп в SQL-запрос без временных таблиц

Я создал сложный поисковый запрос в SQL 2008, который возвращает данные, отсортированные по группам, и сам запрос имеет функции разбиения на страницы и сортировки, но вместо того, чтобы возвращать заданное количество записей на основе параметров разбиения на страницы, он должен возвращать заданное количество групп (поэтому количество записей будет варьироваться).

В настоящее время я делаю это с помощью временных таблиц (первая временная таблица создает список групп, которые будут выбраны как часть поиска, а затем пронумеровывает их ... и второй запрос присоединяется к этой таблице к фактическому поиску ... так что он запускает поисковый запрос дважды).

Я ищу более эффективный способ сделать это с помощью некоторых новых функций в SQL 2008 (которые не требуют использования временных таблиц).

Если я смогу получить данные в таком формате, я был бы настроен ...

Record  Group     GroupSequence
-------|---------|--------------
1       Chickens  1
2       Chickens  1
3       Cows      2
4       Horses    3
5       Horses    3
6       Horses    3

Есть ли идеи, как сделать это с помощью одного запроса в SQL 2008, без использования временных таблиц?

10
задан Jacob 9 March 2011 в 22:55
поделиться