Fonctions analytiques

La plupart du temps, les fonctions analytiques exécutent des calculs sur la base d'ensembles de lignes dans un jeu de données. Il peut s'agir de l'intégralité du jeu de données ou d'ensembles spécifiques de lignes définis comme des groupes, des partitions ou des fenêtres.

Fonctions analytiques d'agrégation : elles utilisent toutes les lignes du jeu de données, du groupe, de la partition ou de la fenêtre pour exécuter un calcul et renvoyer une seule valeur. Par exemple, sum additionne les valeurs de toutes les lignes dans l'étendue actuelle. Les fonctions analytiques d'agrégation peuvent être utilisées dans les clauses SELECT ou HAVING de requêtes RAQL :

Fonctions analytiques de fenêtre : elles utilisent certaines lignes dans une partition ou une fenêtre pour exécuter un calcul et renvoyer une valeur pour chaque ligne. En règle générale, cette valeur utilise des lignes qui sont définies par rapport à la ligne actuelle, comme FIRST_VALUE ou ROW_NUMBER.

Vous devez intégrer une clause OVER dans les requêtes qui utilisent des fonctions analytiques de fenêtre. Cette clause définit les partitions ou les fenêtres utilisées par la fonction.

Comme pour les fonctions simples, RAQL fournit des fonctions analytiques qui existent dans le langage SQL par défaut, mais aussi sous forme d'extensions spécifiques à RAQL.

Les extensions spécifiques à RAQL sont les suivantes :

Agrégat

Fenêtre

Fonction

Description

Vérifier

correlation(Number col-or-expr, Number col-or-expr)

Deprecated. Reportez-vous à Mettre à jour les fonctions analytiques pour 3.8 pour découvrir des alternatives.

Vérifier

covar_samp(Number col-or-expr, Number col-or-expr)

Renvoie la covariance de l'échantillon (une estimation) des deux colonnes spécifiées. Reportez-vous à la rubrique covariance pour plus d'informations.

Vérifier

analytics.discretize(Number col-or-expr, int binCount)

Cette fonction segmente une plage continue de valeurs pour une colonne ou une expression en bins distincts basés sur le nombre de bins (ou conteneurs) indiqué. Si la valeur :

  • < = valeur minimale de la colonne, elle renvoie 0.

  • > = valeur maximale de la colonne, elle renvoie binCount - 1.

  • < valeur maximale et > valeur minimale de la colonne, elle renvoie une fraction comprise entre 0 et binCount - 1, indiquant la position relative de la valeur au sein du nombre de bins.

Donc 0 <= valeur renvoyée < 1, indique le premier bin, 1 <= valeur renvoyée < 2, indique le deuxième bin, et ainsi de suite.

Il est à noter que cette fonction ne prend pas en charge les fenêtres. Elle s'applique uniquement à la partition entière.

Vérifier

gmean(Number col-or-expr)

Renvoie la moyenne géométrique des valeurs pour cette colonne ou expression au sein de la partition ou de la fenêtre actuelle dans cette partition.

La moyenne géométrique sert généralement à définir une moyenne lorsque plusieurs propriétés sont impliquées, surtout si l'échelle des propriétés est différente.

Vérifier

analytics.kmeans_clusters(Number col-or-expr1[,Number col-or-expr2,...Number col-or-exprN]; Integer k, Integer iterations, String measure)

Renvoie le point central optimal pour le nombre de clusters indiqué comme k afin de regrouper les lignes à une distance minimale pour chaque cluster. L'inclusion dans un cluster pour chaque ligne est définie par les caractéristiques indiquées dans la liste des paramètres de colonne (avant le point-virgule). La distance par rapport au point central du cluster est mesurée par la formule précisée dans measure.

  • col-or-expr1, col-or-expr2, ... col-or-exprN; : il s'agit de colonnes ou d'expressions individuelles utilisées comme caractéristiques des vecteurs qui définissent les clusters. Cette liste de paramètres doit impérativement :

  • Contenir uniquement des colonnes avec des valeurs numériques ;

  • Contenir au moins une colonne, mais sans limitation quant à leur nombre ;

  • Se terminer par un point-virgule (;). Il indique la fin des paramètres des caractéristiques et le début des paramètres connus restants.

  • k : nombre de clusters à créer.

  • iterations : nombre maximal d'itérations à exécuter pour optimiser les clusters.

  • measure : nom de la formule utilisée pour définir l'état de membre de chaque ligne dans un cluster donné. Les mesures valides sont les suivantes :

  • euclidean

  • manhattan

  • cosine

  • tanimoto

  • squaredeuclidean

Vérifier

analytics.kmeans_observations(Number col-or-expr1[,Number col-or-expr2,...Number col-or-exprN]; Integer k, Integer iterations, String measure)

Renvoie l'ID du cluster auquel chaque ligne appartient pour le nombre de clusters indiqué comme k. L'inclusion dans un cluster pour chaque ligne est définie par les caractéristiques indiquées dans la liste des paramètres de colonne (avant le point-virgule). La distance par rapport au point central du cluster est mesurée par la formule précisée dans measure.

  • col-or-expr1, col-or-expr2, ... col-or-exprN; : il s'agit de colonnes ou d'expressions individuelles utilisées comme caractéristiques des vecteurs qui définissent les clusters. Cette liste de paramètres doit impérativement :

  • Contenir uniquement des colonnes avec des valeurs numériques ;

  • Contenir au moins une colonne, mais sans limitation quant à leur nombre ;

  • Se terminer par un point-virgule (;). Il indique la fin des paramètres des caractéristiques et le début des paramètres connus restants.

  • k : nombre de clusters à créer.

  • iterations : nombre maximal d'itérations à exécuter pour optimiser les clusters.

  • measure : nom de la formule utilisée pour définir l'état de membre de chaque ligne dans un cluster donné. Les mesures valides sont les suivantes :

  • euclidean

  • manhattan

  • cosine

  • tanimoto

  • squaredeuclidean

Vérifier

analytics.ordinal(String col-or-expr)

Renvoie un numéro d'index pour chaque valeur de chaîne unique dans la colonne ou l'expression spécifiée. En général, l'affectation d'un nombre ordinal autorise les calculs sur les colonnes contenant des chaînes.

Vérifier

skew(Number col-or-expr)

Renvoie une mesure de l'asymétrie d'une dispersion probable normale des valeurs pour cette colonne ou expression au sein de la partition ou de la fenêtre actuelle dans cette partition. Elle est basée sur le coefficient de dispersion normalisé de Fisher-Pearson.

Les valeurs positives tendant à indiquer que plus de valeurs se situent à gauche de la moyenne, alors que les valeurs négatives impliquent l'inverse.

Renvoie 0 si le jeu de données ne contient pas au moins trois lignes. Cette fonction peut également retourner NaN si le calcul donne un résultat indéfini ou ne correspond pas à un nombre.