Fonction de Fenêtre
La propriété de colonne Fonction de Fenêtre vous permet d'effectuer des calculs sur un ensemble de lignes liées à la ligne sélectionnée. Contrairement aux fonctions d'agrégation, les fonctions de fenêtre préservent l'identité de chaque ligne — les résultats sont calculés pour chaque ligne sans les regrouper en une seule ligne de sortie. Si la valeur Partition By n'est pas au même niveau que la vue, SEI peut avoir besoin de forcer le chargement de toutes les données de la vue (y compris les données à la demande) avant d'appliquer la fonction de fenêtre.
Les fonctions de fenêtre ne sont prises en charge qu'avec les Microsoft SQL Server et Oracle sources de données.
Effectuer un calcul de fonction de fenêtre
Assurez-vous que la propriété Sous-total dans Général est réglée sur une option autre que Aucun. Sinon, la fonction de fenêtre ne sera pas appliquée.
- Dans le Tableau des champs, sélectionnez une colonne.
- Développez l'onglet Général.
- À côté de Fonction de Fenêtre, cliquez sur le bouton pour ouvrir la boîte de dialogue.
- Dans Over By, sélectionnez une fonction dans la liste déroulante.
- Complétez les autres champs au besoin : Partition By, Order By et Sort By.
- Cliquez sur Ok.
- Dans l'onglet Fichier, cliquez sur Enregistrer le modèle de données.
Options de fonction de fenêtre
| Option | Description |
|---|---|
| Over By | Définit le type de calcul de la fonction de fenêtre. Utilisez des fonctions d'agrégation, de classement, analytiques ou statistiques pour calculer les valeurs sur les lignes. |
| Partition By | (Facultatif) Divise l'ensemble des résultats de la requête en partitions sur la base des dimensions sélectionnées. La sélection d'une ou plusieurs dimensions dans la liste déroulante partitionne l'ensemble des résultats selon ces dimensions. Sélectionnez #Dynamic pour partitionner automatiquement par le niveau de la vue. |
| Order By | Définit l'ordre dans lequel l'ensemble des résultats de la requête est traité. #Current Measure Value utilisera la mesure dans la grille pour le tri. Vous pouvez également choisir une ou plusieurs dimensions pour ordonner les résultats. |
| Sort By | (Facultatif) Spécifie la direction du tri : ASC, DESC ou NONE. |
Fonctions Over By
Fonctions d'agrégation
| Fonction | Description |
|---|---|
| SUM | Calcule la somme de toutes les valeurs numériques, en ignorant NULL. |
| AVG | Calcule la moyenne de toutes les valeurs numériques, en ignorant NULL. |
| COUNT | Compte les lignes. COUNT(*) inclut les valeurs NULL, tandis que COUNT(expression) ne compte que les valeurs non-NULL dans cette expression. |
| MIN | Renvoie la plus petite valeur numérique, en ignorant NULL. |
| MAX | Renvoie la plus grande valeur numérique, en ignorant NULL. |
Exemple – Agrégation
Pour reproduire cet exemple, ouvrez les propriétés de Fonction de Fenêtre du champ et définissez :
- Over By sur
SUM - Order By sur le champ chronologique (par exemple, Mois, Date)
- Partition By pour réinitialiser les totaux (par exemple, Année fiscale)
Un total courant est la somme cumulative d'une séquence de nombres, mise à jour au fur et à mesure que de nouveaux nombres sont ajoutés. La fonction de fenêtre SUM ajoute continuellement des valeurs en fonction du paramètre Order By. Vous pouvez redémarrer la somme à l'aide de Partition By (par exemple, réinitialiser les totaux par année fiscale).
Totaux courants par année fiscale :
La fonction SUM calcule un total continu jusqu'à ce que la Partition By (année fiscale) change, puis redémarre.
Quantité d'inventaire au fil du temps :
La fonction SUM suit les niveaux d'inventaire cumulés au fil des dates, montrant comment le stock s'accumule au fil du temps.
Fonctions de classement
| Fonction | Description |
|---|---|
| CUME_DIST | Calcule le classement relatif de la ligne actuelle dans une partition : (nombre de lignes précédant ou égal à la courant) / (total des lignes dans la partition). |
| DENSE_RANK | Classe les valeurs au sein d'un groupe sans vides dans les numéros de rang pour les égalités. |
| NTILE_4 / NTILE_100 | Divise les lignes dans chaque partition en 4 ou 100 groupes classés, aussi uniformément que possible. |
| PERCENT_RANK | Calcule le pourcentage de rang en utilisant (rank - 1) / (rows in window - 1). |
| RANK | Classe les valeurs au sein d'un groupe ; les égalités provoquent des vides dans le numéro. |
| ROW_NUMBER | Numérote séquentiellement les lignes au sein d'une partition ; les égalités reçoivent des numéros différents de manière non déterministe. |
Exemple – Classement
Pour reproduire ces exemples, ouvrez les propriétés de Fonction de Fenêtre du champ et définissez :
- Over By sur
ROW_NUMBER,RANKouDENSE_RANKpour le classement - Over By sur
PERCENT_RANKouCUME_DISTpour l'analyse de distribution - Choisissez la dimension ou la mesure pour Order By qui correspond au scénario
Les fonctions de classement vous permettent d'ordonner, de comparer et de regrouper les lignes sur la base d'une mesure ou d'une dimension. Elles sont utiles pour identifier les extrêmes, repérer les tendances et calculer des métriques de distribution sans agréger les lignes.
Identification des ventes les plus élevées et les plus basses :
Les montants de vente les plus élevés et les plus bas identifiés à l'aide de fonctions de classement. Cela facilite la mise en évidence des meilleurs performances et des plus faibles valeurs dans l'ensemble de données. ROW_NUMBER assigne un numéro séquentiel à chaque ligne après le tri par montant de vente. RANK attribue des rangs aux égalités, ce qui peut provoquer des vides dans la numérotation. DENSE_RANK assigne des rangs sans vides pour les égalités.
Comprendre la distribution des valeurs :
Distribution des valeurs exprimée en pourcentage de rang et distribution cumulative. Une ligne avec Percent Rank 0.94 indique que 94% des valeurs sont inférieures à ce montant de ligne. Une ligne avec CUME_DIST 0.47 signifie que 47% des valeurs sont inférieures ou égales à ce montant.
Fonctions de valeur
| Fonction | Description |
|---|---|
| LAG | Renvoie la valeur de la ligne avant celle actuelle ; renvoie NULL si aucune n'existe. |
| LEAD | Renvoie la valeur de la ligne après celle actuelle ; renvoie NULL si aucune n'existe. |
| FIRST_VALUE | Renvoie la valeur de la première ligne dans la fenêtre. |
| LAST_VALUE | Renvoie la valeur de la dernière ligne dans la fenêtre. |
Exemple – Valeur
Pour reproduire cet exemple, ouvrez les propriétés de Fonction de Fenêtre du champ et définissez :
- Over By sur
LAGouLEADselon la direction - Order By sur le champ chronologique (par exemple, Mois, Date)
- Appliquez des calculs sur les valeurs de lag/lead retournées dans votre vue
La fonction LAG récupère des données de la ligne précédente, tandis que LEAD récupère celle de la ligne suivante. Ces fonctions peuvent être utilisées pour des calculs basés sur le temps ou des comparaisons entre des enregistrements successifs—comme les pourcentages de croissance au fil du temps, l'analyse des écarts ou le suivi des retards entre les tâches.
Comparaison des ventes mensuelles :
*Nous calculons le % de Croissance des ventes entre les mois en utilisant LAG et LEAD dans la même ligne. Le montant de Lead montre les ventes du mois suivant ; le montant de Lag montre les ventes du mois précédent. % de Croissance = (Montant de Lead – Montant de Lag) / Montant de Lag *
Suivi des écarts entre les tâches de projet :
En mesurant les jours entre les dates de début et de fin des tâches, nous pouvons identifier le temps de latence entre les activités ou les débuts anticipés (leads) qui se chevauchent. Un décalage de 46 jours entre les tâches T-001/02 et T-002 identifié.
Fonctions statistiques
| Fonction | Description |
|---|---|
| STDEV | Calcule l'écart-type de l'échantillon des valeurs numériques. |
| STDEVP | Calcule l'écart-type de la population des valeurs numériques. |
| VAR | Calcule la variance de l'échantillon des valeurs numériques. |
| VARP | Calcule la variance de la population des valeurs numériques. |
Les noms de fonctions statistiques sont pour Microsoft SQL Server. Pour les sources de données Oracle, elles correspondent à STDDEV, STDDEV_POP, VARIANCE, et VAR_POP.