Aperçu des fonctions analytiques

Vous utilisez des fonctions analytiques pour calculer des agrégats cumulés, mobiles, centrés et de rapport.

Les fonctions analytiques calculent une valeur agrégée basée sur un groupe de lignes. Mais contrairement aux fonctions d'agrégation, elles renvoient plusieurs lignes pour chaque groupe. Les fonctions analytiques répondent aux questions suivantes :
  • Quel est le total en cours ?
  • Quels sont les pourcentages au sein d'un groupe ?
  • Quelles sont les n premières requêtes ?
  • Qu'est-ce que la moyenne mobile ?
Les fonctions SQL de Netezza Performance Server peuvent être réparties dans les familles suivantes. Certaines fonctions sont utilisées dans plus d'une famille :
Famille d'agrégats de rapports/fenêtres
Utilisez les fonctions de reporting pour comparer des valeurs à différents niveaux d'agrégation, car elles peuvent effectuer plusieurs passages sur les données dans un seul bloc de requête et renvoyer la même valeur agrégée pour chaque ligne d'une partition. Vous pouvez utiliser les fonctions de reporting pour calculer le pourcentage du total et la part de marché. Par exemple, vous pourriez vouloir connaître le niveau des ventes régionales en pourcentage des ventes nationales.

Les fonctions de fenêtre répondent à des questions telles que "quelle est la moyenne mobile sur 12 semaines du cours d'une action ?" ou "quelle a été la somme cumulée des ventes pour chaque région ?"

Pour toutes les fonctions d'agrégation SQL, les fonctions de reporting assurent le traitement des agrégats de reporting, tandis que les fonctions de fenêtre assurent le traitement des déplacements et des cumuls. Ces fonctions agrégées SQL sont les suivantes : avg, 'sum, 'min, 'median, 'max, 'count, 'variance et 'stddev, mais la fonction median() n'est pas prise en charge en tant qu'agrégat de fenêtre.

Famille Lag/Lead
Ces fonctions permettent de comparer différentes lignes d'un tableau en spécifiant un décalage par rapport à la ligne actuelle. Vous pouvez utiliser ces fonctions pour analyser les changements et les variations. Les fonctions comprennent le décalage et l'avance.
Première/dernière famille
Ces fonctions permettent de spécifier des groupes d'agrégats triés et de renvoyer la première ou la dernière valeur de chaque groupe. Par exemple, vous pouvez interroger les relevés bancaires pour connaître les soldes mensuels de début et de fin de mois. Ces fonctions comprennent " first_value et " last_value.
Classement des familles
Ces fonctions permettent de répondre à des questions telles que "quels sont les 10 articles les plus vendus et les 10 articles les moins vendus ? Les fonctions examinent l'ensemble de la sortie avant d'afficher une réponse. Ces fonctions sont les suivantes : " ntile, " dense_rank, " percent_rank, " cume_dist et " rank.
Famille de comptage de lignes
La fonction " row_number attribue un numéro à chaque ligne en fonction de sa position dans la partition de la fenêtre. Elle est similaire aux fonctions " dense_rank et " rank, mais contrairement aux fonctions " rank, elle compte les égalités (lignes homologues, c'est-à-dire les lignes qui correspondent à la colonne "ordre par").
Famille d'ensembles hypothétiques
Ces fonctions donnent le rang ou le centile qu'aurait une ligne si elle était insérée dans un ensemble de données spécifié. Ces fonctions sont les suivantes : " dense_rank, " percent_rank, " cume_dist et " rank.
Famille de fonctions de distribution inversées
Ces fonctions donnent la valeur d'un ensemble de données qui correspond à un percentile spécifié. Ces fonctions comprennent " percentile_cont et " percentile_disc, mais ces deux fonctions ne sont pas prises en charge en tant qu'agrégats de fenêtre.