Подробная информация о функции ROW_NUMBER () и Rank () на сервере SQL .... как это работает - PullRequest
0 голосов
/ 10 января 2012

Я никогда не использую функцию sql server ROW_NUMBER (). поэтому я прочитал статью о ROW_NUMBER (), PARTITION & RANK () и т. д., но мне все еще неясно.

я обнаружил, что синтаксис похож на

SELECT top 10 ROW_NUMBER() OVER(ORDER BY JID DESC) AS 'Row Number',
JID,Specialist,  jobstate, jobtype FROM bbajobs

SELECT top 10 ROW_NUMBER() OVER(PARTITION  BY JID ORDER BY JID DESC) AS 'Row Number',
JID,Specialist,  jobstate, jobtype FROM bbajobs

У меня мало вопросов

1) what over() function does. why we need to specify column name in over function like OVER(ORDER BY JID DESC)

2) i saw sometime people use PARTITION  keyword. what it is?
it is also used in over function like OVER(PARTITION  BY JID ORDER BY JID DESC)
3) in what type of situation we have to use PARTITION  keyword
4) when we specify PARTITION  keyword in over then also we need to specify order by    also why. only PARTITION  keyword can not be used in over clause.
5) what type of situation one should use RANK function
6) what is CTE and what is the advantage of using CTE. it is just like temporary view.
anyone get any performance boost if he/she use CTE other than reusability?

Пожалуйста, обсудите мои пункты подробно. будет очень полезно, если кто-нибудь поможет мне разобраться с небольшим и простым примером для всех ключевых слов, таких как ROW_NUMBER (), PARTITION & RANK (). спасибо

Ответы [ 2 ]

1 голос
/ 10 января 2012
  1. Вам нужен ORDER BY, потому что в противном случае наборы не имеют порядка.Он необходим для стандартного SELECT

  2. PARTITION BY сбрасывает COUNT на раздел

  3. Много

  4. См. Пункт 1. Вы можете использовать PARTITION для SUM, COUNT и т. Д.

  5. См. MSDN

  6. Отдельный вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...