Каково практическое использование FIRST_VALUE и LAST_VALUE SQL Server 2012 (кодовое имя: Denali) CTP 3

В выпуске Denali CTP 3 у нас появилось больше аналитических функций, из которых меня интересуют две:

а) First_Value
б ) Последнее_значение

Я понял, что FIRST_VALUE возвращает первое значение на основе раздела и предложения по порядку, а Last_Value возвращает последнее значение на основе раздела и предложения по порядку.

Но в какой практической ситуации они будут полезны? Пример ситуации в реальном времени поможет мне понять это.


person mcUser    schedule 19.07.2011    source источник
comment
См. также эту статью SSC, которая только что вышла: "nofollow noreferrer">sqlservercentral.com/blogs/sqlservernotesfromthefield/archive/   -  person Aaron Bertrand    schedule 31.08.2011


Ответы (1)


Эти функции могут помочь вам получить другую информацию из набора результатов без использования сложных самообъединений, производных таблиц и т. д. Например, предположим, что у вас есть двадцать сообщений форума в таблице, и вы хотите знать, кто начал обсуждение и кто опубликовал последний ответ. Они упорядочены по дате/времени, поэтому, хотя MIN() и MAX() могут помочь вам определить, когда появились первые и последние сообщения, они не могут сказать вам, кто эти авторы, если вы не вышли и каким-то образом получил эту дополнительную информацию. Даже это может быть сложно - если у вас, например, нет столбца естественного или искусственного ключа (вы можете присоединиться к столбцу идентификаторов), у вас может возникнуть соблазн присоединиться к значениям даты/времени, которые не обязательно будут уникальными. ...

person Aaron Bertrand    schedule 19.07.2011
comment
+1 - Это в основном сокращение для чего-то, что гораздо сложнее сделать без встроенной функции. - person JNK; 19.07.2011