Dans un article précédent, j’ai couvert l’utilisation des lignes précédentes et suivantes dans la clause over. Pour cet exemple, je vais utiliser la même base de données et les mêmes tables que j’ai créées dans l’exemple précédent pour afficher les lignes non bornées précédant et suivant.,

L’une des nouvelles fonctionnalités disponibles dans TSQL dans SQL Server 2012 est les options lignes non bornées précédant et lignes non bornées suivant. L’option UNBOUNDED dans disponible lors de l’utilisation des options précédentes et suivantes. Voici comment ils fonctionnent<

rows unbounded PRECEDING

-- ROWS UNBOUNDED PRECEDINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS UNBOUNDED PRECEDING) as MinRevenueToDatefrom REVENUEorder by departmentID, year;

dans cet exemple, le minrevenuetodate répertorie les revenus les plus bas pour cette ligne et toutes les lignes précédentes classées par date dans l’id de département actuel.

Vous pouvez voir que la ligne 1 définit MinRevenueToDate sur 10030, et elle ne change pas jusqu’à la ligne 7 avec une année de revenus inférieure.,

alors la ligne 16 recommence pour un nouveau service avec les revenus courants les plus bas à ce jour. Ensuite, la ligne 21 est réinitialisée à un numéro de revenu inférieur.

lignes UNBOUNDED FOLLOWING

maintenant, pour l’exemple de unbounded FOLLOWING:

-- ROWS UNBOUNDED FOLLOWINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as MinRevenueBeyondfrom REVENUEorder by departmentID, year;

où vous pouvez voir que le Min(revenu) est calculé sur toutes les lignes de la ligne actuelle à la fin de l’ensemble partitionné par le departmententid.,

l’option UNBOUNDED est très utile pour déterminer un calcul du début d’un ensemble à la ligne courante, ou de la ligne courante à la fin d’un ensemble ou d’un groupe.

gardez à l’esprit que cette fonctionnalité a été introduite dans SQL Server 2012 et n’est pas disponible dans les éditions précédentes.

Liens

  • Requête SQL de la Formation
  • CTE Pagination de Données
  • au COURS de la Clause de LIGNES et de GAMME