Рефераты | Рефераты по информатике, программированию | MS SQL 2005: оконные функции | страница реферата 5 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Некоторые примеры использования

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

    Поскольку теперь появилась возможность нумеровать записи в выборке, можно воспользоваться этим для постраничной выдачи результата. Запрос будет выглядеть примерно так:

    WITH Numbered

    (

     SELECT ROW_NUMBER() OVER(ORDER BY name) N_Row, *

      FROM sysobjects

    )

    SELECT * FROM Numbered WHERE N_Row between @First AND @Last

    Как ни странно, этот запрос будет выполняться примерно в два раза быстрее классического:

    EXECUTE ('SELECT * FROM

          (SELECT TOP ' + @Count + ' * FROM

           (SELECT TOP ' + @Last + ' *

            FROM sysobjects ORDER BY name ASC

           ) SO1

           ORDER BY name DESC) SO2

          ORDER BY name')

    Так что сбылась еще одна мечта, об эффективной и простой постраничной выборке.. :)

    Еще один пример, где использование аналитических функций может быть и удобным, и эффективным. Нередко требуется вывести, например, два самых крупных заказа для каждого клиента. Может случиться так, что заказов с максимальной суммой окажется больше двух. Для случая, когда заказов должно быть именно два, запрос может выглядеть так:

    WITH Ranked as

    (

     SELECT *,

      Row_Number() OVER (PARTITION BY ID_Customer

               ORDER BY amount DESC) [rank]


    Рекомендуем скачать другие рефераты по теме: казахстан реферат, курсовики скачать бесплатно.



    Предыдущая страница реферата | 1  2  3  4  5  6  7 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •