Новые аналитические функции
В Transact-SQL было добавлено несколько новых аналитических функций, предоставляющих базовые аналитические возможности. Эти функции скорее будут полезны для хранилищ данных, которые выполняют пользовательские запросы на реляционной базе данных, а не в Analysis Services. Также эти сложные вычисления обычно используются для ранжирования данных во время тестирования для выбора значимых атрибутов данных.
ROW_NUMBER. Возвращает порядковый номер строки в результирующем наборе данных.
RANK. Возвращает ранг строк в результирующем наборе данных. Функция RANK идентична ROW_NUMBER на отсортированном наборе данных, но используется для работы с совпадающими строками. Все строки с одним и тем же значением сортировки получают ранг, совпадающий с порядковым номером первой из таких строк. Следующий ранг также совпадает с порядковым номером, полученным с помощью ROW_NUMBER. Другими словами, если есть две строки с одинаковым значением сортировки, которое идет первым, то они получат RANK=1, а третья строка будет иметь RANK=3. Строк с RANK=2 не будет.
DENSE_RANK. Возвращает ранг строк в результирующем наборе данных. Функция DENSE_RANK похожа на функцию RANK, но при ее использовании нет промежутков между рангами, которые есть при использовании функции RANK. В приведенном выше примере первая и вторая строки будут иметь RANK=1, а третья строка будет иметь RANK=2.
NTILE. Делит отсортированный результирующий набор данных на группы строк приблизительно одинакового размера.