Ces fonctions sont des extensions des fonctions de ranking de SQL Server 2008, on va donc retrouver la même syntaxe globale.
Voici les données utilisées pour ce script :
Totalement normalisées donc … mais va pour cette démonstration.
Valeur suivante dans le dataset :
LEAD ( Valeur [ ,PasASauter ] , [ DefautSiNull ] ) OVER ( [ ClauseDePartitionnement ] )
Cette fonction servira à faire des comparaisons par exemple :
Sympa d’avoir pensé aux valeurs par défaut si NULL : cela facilitera les reports…
Valeur précédente dans le dataset :
LAG ( Valeur [ ,PasASauter ] , [ DefautSiNull ] ) OVER ( [ ClauseDePartitionnement ] )
Symétriques de la précédente :
Première valeur dans un dataset
FIRST_VALUE ( [Valeur ) OVER ( [ ClauseDePartitionnement ] ClauseDeTri )
La fonction fisrt_value va nous permettre de trouver la colonne dont la valeur est la 1èere et ceci pour tout le dataset ou en le partitionnant.
Donne l’année la plus faible de tous les vendeurs :
Et cette requête :
l’année la plus faible de chaque vendeur
Dernière valeur dans un dataset
LAST_VALUE ( [Valeur )
OVER ( [ Partition ] ClauseDeTri )
Cette fonction est symétrique de la précédente.
Partie de cumul de dataset
CUME_DIST( ) OVER ( [Partition ] ClauseDeTri )
La meilleure vente de tous les temps a été Paul en 2011 ce qui explique son score de 1 = 100 %
Nous donne cette fois la part de la meilleure année de chaque vendeur.
Conclusion
Tous ceux qui ont des reports à produire ou des grilles APS.Net apprécieront ces fonctions qui éviteront de faire les calculs en aval de la base.
0 commentaires:
Enregistrer un commentaire