Fonctions

Voici les différents types de fonction que vous pouvez utiliser dans les expressions.

Rubriques :

Fonctions d'analyse

Les fonctions d'analyse vous permettent d'explorer les données en utilisant des modèles comme une prévision, une courbe de tendance et un regroupement. Sinon, vous pouvez effectuer un glisser-déposer des fonctions d'analyse dans l'éditeur de classeur.

Sinon, vous pouvez ajouter des prévisions, des courbes de tendance et des regroupement à un classeur en les sélectionnant dans l'onglet Analyses du panneau Données dans l'éditeur de classeur. Voir Ajouter des fonctions d'analyses statistiques aux visualisations.

Fonction Exemple Description Syntaxe

CLUSTER

CLUSTER((product, company), (billed_quantity, revenue), 'clusterName', 'algorithm=k-means;numClusters=%1;maxIter=%2;useRandomSeed=FALSE;enablePartitioning=TRUE', 5, 10)

Permet de collecter un jeu d'enregistrements en différents groupes en fonction d'une ou plusieurs expressions d'entrée au moyen d'un regroupement par k moyennes ou hiérarchique.

CLUSTER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

FORECAST

Exemple de prévision de revenus par jour

Cet exemple sélectionne la prévision de revenus par jour.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue" Target,
("A - Sample Sales"."Time"."T00 Calendar Date"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Exemple de prévision de revenus par année et trimestre

Cet exemple sélectionne la prévision de revenus par année et trimestre.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue",
("A - Sample Sales"."Time"."T01 Year" timeYear, "A - Sample Sales"."Time"."T02 Quarter" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Crée un modèle à série chronologique de la mesure indiquée sur la série en utilisant le lissage exponentiel, le modèle ARMMI saisonnier, ARMMI ou Prophet. Cette fonction retourne une prévision pour un jeu de périodes spécifié par l'argument numPeriods.

Voir aussi les options supplémentaires de la fonction FORECAST ci-dessous.

FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])

Où :

  • measure représente la mesure pour la prévision, par exemple, revenue data.

  • series représente la granularité temporelle utilisée pour créer le modèle prévisionnel. Il s'agit d'une liste d'une ou de plusieurs colonnes de dimension de temps. Si series est omis, la granularité temporelle est déterminée à partir de l'interrogation.

  • output_column_name représente les noms de colonne valides forecast,low, high et predictionInterval.

  • options représente une liste de type chaîne de paires nom/valeur séparées par un point-virgule (;). La valeur peut inclure %1 ... %N spécifié dans runtime_binded_options.

  • runtime_binded_options représente une liste de colonnes et d'options séparées par des virgules. Les valeurs pour ces colonnes et ces options sont évaluées et résolues lors de l'éxécution de l'interrogation individuelle.

Voir aussi les options supplémentaires de la fonction FORECAST ci-dessous.

OUTLIER

OUTLIER((product, company), (billed_quantity, revenue), 'isOutlier', 'algorithm=kmeans')

Classe un enregistrement en tant que valeur aberrante en fonction d'une ou de plusieurs expressions d'entrée utilisant des algorithmes de regroupement par k moyennes ou hiérarchique, ou de détection de valeurs aberrantes à plusieurs variables.

OUTLIER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

REGR

REGR(revenue, (discount_amount), (product_type, brand), 'fitted', '')

Permet d'ajuster un modèle linéaire et de retourner le modèle ou les valeurs ajustées. Cette fonction peut être utilisée pour ajuster une courbe linéaire sur deux mesures.

REGR(y_axis_measure_expr, (x_axis_expr), (category_expr1, ..., category_exprN), output_column_name, options, [runtime_binded_options])

TRENDLINE

TRENDLINE(revenue, (calendar_year, calendar_quarter, calendar_month) BY (product), 'LINEAR', 'VALUE')

Oracle recommande d'appliquer une courbe de tendance à l'aide de la propriété Ajouter des statistiques lors de la consultation d'une visualisation. Voir Ajuster les propriétés de visualisation.

Permet d'ajuster un modèle linéaire, polynomiale ou exponentiel et de retourner le modèle ou les valeurs ajustées. numeric_expr représente la valeur Y pour la tendance et series (colonnes de temps) représente la valeur X.

TRENDLINE(numeric_expr, ([series]) BY ([partitionBy]), model_type, result_type)

Options de la fonction FORECAST Le tableau suivant liste les options disponibles à utiliser avec la fonction FORECAST.

Nom de l'option Valeur Description
numPeriods Nombre entier Nombre de périodes pour la prévision.
predictionInterval 0 à 100, où des valeurs supérieures spécifient une confiance supérieure Niveau de confiance pour la prédiction
modelType

ETS (lissage exponentiel)

SeasonalArima

ARMMI

Prophet

Modèle à utiliser pour la prévision.
useBoxCox

TRUE

FALSE

Si TRUE, utiliser la transformation Box-Cox.
lambdaValue Sans objet

Paramètre de transformation Box-Cox.

Ignorer si NULL ou quand useBoxCox a pour valeur FALSE.

Autrement, les données sont transformées avant que le modèle soit évalué.

trendDamp

TRUE

FALSE

Propre au modèle de lissage exponentiel.

Si TRUE, utiliser la tendance amortie. Si FALSE ou NULL, utiliser la tendance non amortie.

errorType

Sans objet

Propre au modèle de lissage exponentiel.
trendType

N (aucune)

A (additive)

M (multiplicative)

Z (sélection automatique)

Propre au modèle de lissage exponentiel.
seasonType

N (aucune)

A (additive)

M (multiplicative)

Z (sélection automatique)

Propre au modèle de lissage exponentiel.
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (c'est la valeur par défaut)

Critère d'informations (IC) utilisé dans la sélection du modèle.

Fonctions de conversion

Les fonctions de conversion permettent de convertir une valeur en une autre valeur.

Fonction Exemple Description Syntaxe

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Change le type de données d'une expression ou d'un littéral nul en un autre type de données. Par exemple, vous pouvez convertir un nom_client (un type de données CHAR ou VARCHAR) ou date_naissance (un littéral de type date/heure).

Utilisez CAST pour passer à des données de type Date.

N'utilisez pas TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Vérifie si une expression donne une valeur nulle et, le cas échéant, affecte la valeur indiquée à l'expression.

IFNULL(expr, value)

INDEXCOL

SELECT INDEXCOL(VALUEOF ("NQ_SESSION"."GEOGRAPHY_LEVEL"), Country, State, City), Revenue FROM Sales

Utilise des informations externes pour retourner la colonne appropriée pour l'utilisateur connecté à consulter.

INDEXCOL([integer literal], [expr1] [, [expr2], ?-])

NULLIF

SELECT e.last_name, NULLIF(e.job_id, j.job_id) "Old Job ID" FROM employees e, job_history j WHERE e.employee_id = j.employee_id ORDER BY last_name, "Old Job ID";

Compare deux expressions. Si elles sont identiques, la fonction retourne alors la valeur NULL. Si elles ne sont pas identiques, alors la fonction retourne la première expression. Vous ne pouvez pas spécifier le littéral nul pour la première expression.

NULLIF([expression], [expression])

To_DateTime

SELECT To_DateTime ('2009-03-0301:01:00', 'yyyy-mm-dd hh:mi:ss') FROM sales

Convertit les littéraux de chaîne de caractères au format DateTime en des données de type DateTime.

To_DateTime([expression], [literal])

VALUEOF

SalesSubjectArea.Customer.Region = VALUEOF("Region Security"."REGION")

Référence la valeur d'une variable de modèle sémantique dans un filtre.

Utilisez les variables expr comme arguments de la fonction VALUEOF. Faites référence aux variables de modèle sémantique statiques en utilisant leur nom.

VALUEOF(expr)

Fonctions d'extraction de date

Ces fonctions calculent ou arrondissent à l'unité inférieure les valeurs d'horodatage à la période spécifiée la plus proche, par exemple, heure, jour, semaine, mois et trimestre.

Vous pouvez utiliser les horodatages calculés pour agréger des données à l'aide d'une autre granularité. Par exemple, vous pouvez appliquer la fonction EXTRACTDAY()à des dates de commande client afin de calculer l'horodatage minuit pour le jour où les commandes sont passées, et ainsi, agréger les données jour par jour.

Fonction Exemple Description Syntaxe

Extraire le jour

EXTRACTDAY("Order Date")
  • 2/22/1967 3:02:01 AM retourne 2/22/1967 12:00:00 AM.
  • 9/2/2022 10:38:21 AM retourne 9/2/2022 12:00:00 AM.

Retourne l'horodatage d'entrée avec minuit (12 AM) pour l'heure. Par exemple, si l'horodatage d'entrée est 3:02:01 AM le 22 février, la fonction retourne 12:00:00 AM le 22 février.

EXTRACTDAY(expr)

Extraire l'heure

EXTRACTHOUR("Order Date")
  • 2/22/1967 3:02:01 AM retourne 2/22/1967 3:00:00 AM.
  • 6/17/1999 11:18:30 PM retourne 6/17/1999 11:00:00 PM.

Retourne l'horodatage de la valeur d'entrée avec des zéros pour les minutes et les secondes. Par exemple, si l'horodatage d'entrée est 11:18:30 PM, la fonction retourne 11:00:00 PM.

EXTRACTHOUR (expr)

Extraire l'heure du jour

EXTRACTHOUROFDAY("Order Date")
  • 2014/09/24 10:58:00 retourne 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 retourne 2000/01/01 11:00:00

Retourne un horodatage dans lequel l'heure est égale à l'heure de la valeur d'entrée avec les valeurs par défaut pour l'année, le mois, le jour, les minutes et les secondes.

EXTRACTHOUROFDAY(expr)

Extraire les millisecondes

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 retourne 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 retourne 1997/01/07 18:42:01.265.
Retourne un horodatage contenant les millisecondes de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 15:32:02.150, la fonction retourne 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extraire les minutes

EXTRACTMINUTE("Order Date")
  • 6/17/1999 11:18:00 PM retourne 6/17/1999 11:18:00 PM.
  • 9/2/2022 10:38:21 AM retourne 9/2/2022 10:38:00 AM.

Retourne l'horodatage de la valeur d'entrée avec des zéros pour les secondes. Par exemple, si l'horodatage d'entrée est 11:38:21 AM, la fonction retourne 11:38:00 AM.

EXTRACTMINUTE (expr)

Extraire le mois

EXTRACTMONTH("Order Date")
  • 2/22/1967 3:02:01 AM retourne 2/1/1967 12:00:00 AM.
  • 6/17/1999 11:18:00 PM retourne 6/1/1999 12:00:00 AM.

Retourne un horodatage correspondant au premier jour du mois de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est le 22 février, la fonction retourne le 1er février.

EXTRACTMONTH(expr)

Extraire le trimestre

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM retourne 1/1/1967 12:00:00 AM, le premier jour du premier trimestre d'exercice.
  • 6/17/1999 11:18:00 PM retourne 4/1/1999 12:00:00 AM, le premier jour du deuxième trimestre d'exercice.

  • 9/2/2022 10:38:21 AM retourne 7/1/2022 12:00:00 AM, le premier jour du troisième trimestre d'exercice.

    Conseil : Utilisez QUARTER (expr) pour calculer uniquement le trimestre ordinal à partir de l'horodatage retourné.

Retourne un horodatage correspondant au premier jour du trimestre de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est pour le troisième trimestre d'exercice, la fonction retourne le 1er juillet.

EXTRACTQUARTER(expr)

Extraire les secondes

EXTRACTSECOND("Order Date")
  • 1997/01/07 15:32:02.150 retourne 1997/01/07 15:32:02.
  • 1997/01/07 20:44:18.163 retourne 1997/01/07 20:44:18.

Retourne un horodatage correspondant à la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 15:32:02.150, la fonction retourne 15:32:02.

EXTRACTSECOND(expr)

Extraire la semaine

EXTRACTWEEK("Order Date")
  • 2014/09/24 10:58:00 retourne 2014/09/21.

  • 2014/08/13 11:10:00 retourne 2014/08/10.

Retourne la date du premier jour de la semaine (dimanche) figurant dans la valeur d'entrée. Par exemple, si l'horodatage d'entrée est le mercredi 24 septembre, la fonction retourne le dimanche 21 septembre.

Remarque: Si le premier jour d'une semaine (c'est-à-dire dimanche) tombe dans l'année précédente et affecte négativement l'agrégation, la fonction renvoie le septième jour de la semaine (c'est-à-dire samedi) de l'année en cours au lieu du premier jour de la semaine de l'année précédente. Par exemple, les dates 01/01/24, 02/01/24 et 03/01/24 sont toutes agrégées au samedi 06/01/24, plutôt qu'au dimanche 29/12/23.

EXTRACTWEEK(expr)

Extraire l'année

EXTRACTYEAR("Order Date")
  • 1967/02/22 03:02:01 retourne 1967/01/01 00:00:00.
  • 1999/06/17 23:18:00 retourne 1999/01/01 00:00:00.

Retourne l'horodatage du 1er janvier de l'année figurant dans la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 1967, la fonction retourne le 1er janvier 1967.

EXTRACTYEAR (expr)

Conseils sur l'utilisation de dimensions Date dans les domaines

Les conseils ci-dessous vous permettent de tirer le meilleur parti de l'utilisation de dates de domaine dans les calculs.

Ajout d'une date de domaine à un calcul

Si vous faites glisser une date d'un domaine directement dans un calcul et que vous la traitez comme une chaîne ou un nombre entier, vous obtiendrez une erreur. Cela est dû au fait que la valeur de date sous-jacente est un horodatage.

Utilisez plutôt l'une des Fonctions d'extraction de date pour interpréter la date.

Par exemple, vous avez les dates de domaine suivantes.
Description de GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png ci-après
.png

Pour extraire les mois de ces dates de domaine, utilisez la fonction ExtractMonthOfYear :

case when monthname(ExtractMonthOfYear("Date")) in ('Jan' ,'Feb', 'Mar') 
THEN 'Q1' 
ELSE 'Rest of the year' END

Fonctions d'affichage

Les fonctions d'affichage s'appliquent au jeu de résultats d'une interrogation.

Fonction Exemple Description Syntaxe

BottomN

BottomN(Sales, 10)

Retourne les n valeurs les plus faibles de l'expression, de la plus faible à la plus élevée.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Calcule l'expression en utilisant le filtre de préagrégation indiqué.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Calcule une moyenne mobile des n dernières rangées de données dans le jeu de résultats, en comptant la rangée active.

MAVG([NumericExpression], [integer])

MSUM

SELECT Month, Revenue, MSUM(Revenue, 3) as 3_MO_SUM FROM Sales

Calcule la somme mobile des n dernières rangées de données, en comptant la rangée courante.

Pour la première rangée, la somme est égale à la valeur de l'expression numérique de cette rangée. Pour la deuxième rangée, la somme est calculée en additionnant la somme des deux premières rangées de données, et ainsi de suite. When the n th row is reached, the sum is calculated based on the last n rows of data.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Détermine le rang d'une valeur dans un intervalle indiqué par l'utilisateur. Cette fonction retourne des nombres entiers pour représenter un intervalle de rangs. Par exemple, elle affiche un intervalle de 1 à 100, la vente la moins élevée = 1 et la plus élevée = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Calcule un rang centile pour chaque valeur répondant à l'argument de l'expression numérique. Les intervalles de rangs centiles sont de 0 (1er centile) à 1 (100e centile), inclusivement.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Calcule le rang de chaque valeur répondant à l'argument de l'expression numérique. Le rang 1 est affecté au nombre le plus élevé et les rangs suivants sont numérotés de façon consécutive (2, 3, 4...). Si certaines valeurs sont égales, le même rang leur est affecté (par exemple, 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

SELECT month, profit, RCOUNT(profit) FROM sales WHERE profit > 200

Utilise un jeu d'enregistrements en tant qu'entrée et calcule le nombre d'enregistrements trouvés jusqu'à présent.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Utilise un jeu d'enregistrements en tant qu'entrée et affiche la valeur maximale selon les enregistrements trouvés jusqu'à présent. Le type de données spécifié doit permettre un classement.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Utilise un jeu d'enregistrements en tant qu'entrée et affiche la valeur minimale selon les enregistrements trouvés jusqu'à présent. Le type de données spécifié doit permettre un classement.

RMIN([NumericExpression])

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM FROM sales

Calcule le cumul des enregistrements trouvés jusqu'à présent.

Pour la première rangée, la somme est égale à la valeur de l'expression numérique de cette rangée. Pour la deuxième rangée, la somme est calculée en additionnant la somme des deux premières rangées de données, et ainsi de suite.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Retourne les n valeurs les plus élevées de l'expression, de la plus élevée à la plus faible.

TOPN([NumericExpression], [integer])

Conseils sur l'utilisation de fonctions d'affichage

  • FILTER - Si vous créez un rapport à l'aide d'un domaine, utilisez les hiérarchies définies dans le domaine au lieu de filtrer les colonnes de hiérarchie directement dans un calcul. Autrement dit, si un domaine comporte une hiérarchie pour Heure\Exercice financier\Trimestre d'exercice, évitez d'utiliser :

    filter (<measure> using fiscal_quarter = 'Q4')

    filter (<measure> using fiscal_quarter = 'Q3')

    filter (<measure> using fiscal_year = 'FY24')

Fonctions d'évaluation

Les fonctions d'évaluation sont des fonctions de base de données qui servent à transmettre des expressions pour obtenir des calculs avancés.

Les fonctions de base de données intégrées peuvent nécessiter une ou plusieurs colonnes. Ces colonnes sont référencées par %1 ... %N au sein de la fonction. Les colonnes réelles doivent être listées après la fonction.

Fonction Exemple Description Syntaxe

EVALUATE

SELECT EVALUATE('instr(%1, %2)', address, 'Foster City') FROM employees

Transmet la fonction de base de données indiquée avec les colonnes référencées facultatives en tant que paramètres aux fins d'évaluation.

EVALUATE([string expression], [comma separated expressions])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', sales.quantity, market.marketkey)

Transmet la fonction de base de données indiquée avec les colonnes référencées facultatives en tant que paramètres aux fins d'évaluation. Destinée aux fonctions d'agrégation avec clause GROUP BY.

EVALUATE_AGGR('db_agg_function(%1...%N)' [AS datatype] [, column1, columnN])

Fonctions mathématiques

Les fonctions mathématiques décrites dans cette section effectuent des opérations mathématiques.

Fonction Exemple Description Syntaxe

ABS

ABS(Profit)

Calcule la valeur absolue d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

ABS(expr)

ACOS

ACOS(1)

Calcule l'arc-cosinus d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

ACOS(expr)

ASIN

ASIN(1)

Calcule l'arc-sinus d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

ASIN(expr)

ATAN

ATAN(1)

Calcule l'arc-tangent d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Calcule l'arc-tangent de y /x, où y est la première expression numérique et x, la seconde.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Arrondit une expression numérique non entière au nombre entier le plus élevé suivant. Si l'expression numérique est évaluée à un nombre entier, la fonction CEILING retourne cet entier.

CEILING(expr)

COS

COS(1)

Calcule le cosinus d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

COS(expr)

COT

COT(1)

Calcule la cotangente d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

COT(expr)

DEGREES

DEGREES(1)

Convertit en degrés une expression en radians.

expr représente toute expression qui donne une valeur numérique.

DEGREES(expr)

EXP

EXP(4)

Élève la valeur à la puissance spécifiée. Calcule e élevé à la puissance n, où e est la base du logarithme népérien.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Extrait un bit à une position particulière d'un nombre entier. Elle retourne un entier de 0 ou de 1 correspondant à la position du bit.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Arrondit une expression numérique non entière au nombre entier le plus bas suivant. Si l'expression numérique est évaluée à un nombre entier, la fonction FLOOR retourne cet entier.

FLOOR(expr)

LOG

LOG(1)

Calcule le logarithme népérien d'une expression.

expr représente toute expression qui donne une valeur numérique.

LOG(expr)

LOG10

LOG10(1)

Calcule le logarithme de base 10 d'une expression.

expr représente toute expression qui donne une valeur numérique.

LOG10(expr)

MOD

MOD(10, 3)

Divise la première expression numérique par la seconde et retourne la partie résiduelle du quotient.

MOD(expr1, expr2)

PI

PI()

Retourne la valeur constante de pi.

PI()

POWER

POWER(Profit, 2)

Part de la première expression numérique pour l'élever à la puissance spécifiée dans la seconde.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Convertit en radians une expression en degrés.

expr représente toute expression qui donne une valeur numérique.

RADIANS(expr)

RAND

RAND()

Retourne un nombre pseudo-aléatoire compris entre 0 et 1.

RAND()

RANDFromSeed

RAND(2)

Retourne un nombre pseudo-aléatoire basé sur une valeur de départ. Pour une valeur de départ donnée, le même jeu de nombres aléatoires est généré.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Arrondit une expression numérique à n chiffres après la virgule.

expr représente toute expression qui donne une valeur numérique.

integer représente tout entier positif. Il correspond au nombre de chiffres de précision.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Retourne ce qui suit :

  • 1 si l'expression numérique est évaluée à un nombre positif

  • -1 si l'expression numérique est évaluée à un nombre négatif

  • 0 si l'expression numérique est évaluée à zéro

SIGN(expr)

SIN

SIN(1)

Calcule le sinus d'une expression numérique.

SIN(expr)

SQRT

SQRT(7)

Calcule la racine carrée de l'argument d'une expression numérique. L'expression numérique doit être évaluée à un nombre naturel.

SQRT(expr)

TAN

TAN(1)

Calcule la tangente d'une expression numérique.

expr représente toute expression qui donne une valeur numérique.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Tronque un nombre décimal pour retourner un nombre spécifié de décimales après la virgule.

expr représente toute expression qui donne une valeur numérique.

integer représente tout entier positif et correspond au nombre de caractères à droite de la décimale à retourner.

TRUNCATE(expr, integer)

Exécution des fonctions d'agrégation

L'exécution des fonctions d'agrégation effectue des opérations sur de multiples valeurs afin de créer des résultats sommaires.

Fonction Exemple Description Syntaxe

MAVG

 

Calcule une moyenne mobile des n dernières rangées de données dans le jeu de résultats, en comptant la rangée active.

expr représente toute expression qui donne une valeur numérique. integer représente tout entier positif. Correspond à la moyenne des n dernières rangées de données.

MAVG(expr, integer)

MSUM

select month, revenue, MSUM(revenue, 3) as 3_MO_SUM from sales_subject_area

Calcule la somme mobile des n dernières rangées de données, en comptant la rangée courante.

expr représente toute expression qui donne une valeur numérique. integer représente tout entier positif. Correspond à la somme des n dernières rangées de données.

MSUM(expr, integer)

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM from sales_subject_area

Calcule le cumul des enregistrements trouvés jusqu'à présent.

expr représente toute expression qui donne une valeur numérique.

RSUM(expr)

RCOUNT

select month, profit, RCOUNT(profit) from sales_subject_area where profit > 200

Utilise un jeu d'enregistrements en tant qu'entrée et calcule le nombre d'enregistrements trouvés jusqu'à présent.

expr est une expression de n'importe quel type de données.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Utilise un jeu d'enregistrements en tant qu'entrée et affiche la valeur maximale selon les enregistrements trouvés jusqu'à présent.

expr est une expression de n'importe quel type de données.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Utilise un jeu d'enregistrements en tant qu'entrée et affiche la valeur minimale selon les enregistrements trouvés jusqu'à présent.

expr est une expression de n'importe quel type de données.

RMIN(expr)

Fonctions spatiales

Les fonctions spatiales vous permettent d'effectuer des analyses géographiques lorsque vous modélisez des données. Vous pouvez par exemple calculer la distance entre deux zones géographiques (appelées formes ou polygones)

Note :

Vous ne pouvez pas utiliser ces fonctions spatiales dans des calculs personnalisés pour des classeurs de visualisation.
Fonction Exemple Description Syntaxe
GeometryArea

GeometryArea(Shape)

Calcule la surface occupée par une forme.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Calcule la distance entre deux formes.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Calcule la circonférence d'une forme.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Détermine si une forme est à l'intérieur d'une autre. Retourne TRUE ou FALSE sous forme de chaîne (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Détermine si deux formes se trouvent à l'intérieur d'une distance spécifiée l'une de l'autre. Retourne TRUE ou FALSE sous forme de chaîne (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Fonctions de chaîne

Les fonctions de chaîne exécutent diverses manipulations sur les caractères. Elles sont appliquées aux chaînes de caractères.

Fonction Exemple Description Syntaxe

ASCII

ASCII('a')

Convertit une chaîne contenant un seul caractère pour indiquer le code ASCII correspondant (entre 0 et 255). Si l'expression de caractères est évaluée en de multiples caractères, le code ASCII correspondant au premier caractère de l'expression est retourné.

expr représente toute expression qui donne une chaîne de caractères.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Retourne la longueur, en bits, d'une chaîne donnée. Chaque caractère Unicode est d'une longueur de 2 octets (16 bits).

expr représente toute expression qui donne une chaîne de caractères.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Convertit une valeur numérique située entre 0 et 255 pour indiquer le caractère correspondant à ce code ASCII.

expr représente toute expression qui donne une valeur numérique comprise entre 0 et 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Retourne la longueur, en nombre de caractères, d'une chaîne donnée. Les espaces de début et de fin ne sont pas comptés dans la longueur de la chaîne.

expr représente toute expression qui donne une chaîne de caractères.

CHAR_LENGTH(expr)

CONCAT

SELECT DISTINCT CONCAT ('abc', 'def') FROM employee

Concatène deux chaînes de caractères.

exprs sont des expressions qui donnent des chaînes de caractères, séparées par des virgules.

Vous devez utiliser des données brutes, pas des données formatées, avec CONCAT.

CONCAT(expr1, expr2)

INSERT

SELECT INSERT('123456', 2, 3, 'abcd') FROM table

Insère une chaîne de caractères à un emplacement spécifié dans une autre chaîne de caractères.

expr1 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne de caractères cible.

integer1 représente tout entier positif et correspond au nombre de caractères à partir du début de la chaîne cible après lesquels la seconde chaîne doit être insérée.

integer2 représente tout entier positif et correspond au nombre de caractères de la chaîne cible à remplacer par la seconde chaîne.

expr2 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne de caractères à insérer dans la chaîne cible.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Retourne un nombre spécifié de caractères à partir de la gauche d'une chaîne.

expr représente toute expression qui donne une chaîne de caractères.

integer représente tout entier positif et correspond au nombre de caractères à partir de la gauche de la chaîne à retourner.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Retourne la longueur, en nombre de caractères, d'une chaîne donnée. Retourne la longueur à l'exclusion des espaces de fin.

expr représente toute expression qui donne une chaîne de caractères.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Retourne la position numérique d'une chaîne de caractères dans une autre chaîne de caractères. Si la chaîne de caractères est introuvable dans la chaîne faisant l'objet de la recherche, la fonction retourne la valeur 0.

expr1 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne à rechercher.

expr2 représente toute expression qui donne une chaîne de caractères.

Identifie la chaîne de recherche.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Comme LOCATE, retourne la position numérique d'une chaîne de caractères dans une autre chaîne de caractères. LOCATEN inclut un argument sous forme de nombre entier qui vous permet de spécifier la position de départ de la recherche.

expr1 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne à rechercher.

expr2 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne de recherche.

integer représente tout entier positif (non nul) et correspond à la position de départ de la recherche de la chaîne de caractères.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Convertit une chaîne de caractères en minuscules.

expr représente toute expression qui donne une chaîne de caractères.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Retourne le nombre d'octets dans une chaîne donnée.

expr représente toute expression qui donne une chaîne de caractères.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Retourne la position numérique de strExpr1 dans une expression de caractères. Si strExpr1 est introuvable, la fonction retourne la valeur 0.

expr1 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne à rechercher dans la chaîne cible. Par exemple, "d".

expr2 représente toute expression qui donne une chaîne de caractères. Identifie la chaîne cible de recherche. Par exemple, "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Répète l'expression spécifiée n fois.

expr représente toute expression qui donne une chaîne de caractères.

integer représente tout entier positif et correspond au nombre de fois où la chaîne de caractères doit être répétée.

REPEAT(expr, integer)

REPLACE

REPLACE('abcd1234', '123', 'zz')

Remplace des caractères d'une expression de caractères spécifiée par d'autres caractères.

expr1 représente toute expression qui donne une chaîne de caractères. Il s'agit de la chaîne où les caractères doivent être remplacés.

expr2 représente toute expression qui donne une chaîne de caractères. La seconde chaîne identifie les caractères à remplacer dans la première chaîne.

expr3 représente toute expression qui donne une chaîne de caractères. La troisième chaîne indique les caractères de remplacement dans la première chaîne.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Retourne un nombre spécifié de caractères à partir de la droite d'une chaîne.

expr représente toute expression qui donne une chaîne de caractères.

integer représente tout entier positif et correspond au nombre de caractères à partir de la droite de la chaîne à retourner.

RIGHT(expr, integer)

SPACE

SPACE(2)

Insère des espaces vides.

integer représente tout entier positif. Il correspond au nombre d'espaces à insérer.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Crée une nouvelle chaîne commençant après un nombre fixe de caractères dans la chaîne initiale.

expr représente toute expression qui donne une chaîne de caractères.

startPos représente tout entier positif et correspond au nombre de caractères à partir du début du côté gauche de la chaîne où le résultat doit commencer.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Comme SUBSTRING, crée une nouvelle chaîne commençant après un nombre fixe de caractères dans la chaîne initiale.

SUBSTRINGN inclut un argument sous forme de nombre entier qui vous permet de spécifier la longueur de la nouvelle chaîne, en nombre de caractères.

expr représente toute expression qui donne une chaîne de caractères.

startPos représente tout entier positif et correspond au nombre de caractères à partir du début du côté gauche de la chaîne où le résultat doit commencer.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Supprime les caractères de tête et de fin indiqués d'une chaîne de caractères.

char représente tout caractère unique. Si vous omettez cette spécification (et les apostrophes requises), un caractère blanc est utilisé par défaut.

expr représente toute expression qui donne une chaîne de caractères.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Supprime les caractères de tête indiqués d'une chaîne de caractères.

char représente tout caractère unique. Si vous omettez cette spécification (et les apostrophes requises), un caractère blanc est utilisé par défaut.

expr représente toute expression qui donne une chaîne de caractères.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Supprime les caractères de fin indiqués d'une chaîne de caractères.

char représente tout caractère unique. Si vous omettez cette spécification (et les apostrophes requises), un caractère blanc est utilisé par défaut.

expr représente toute expression qui donne une chaîne de caractères.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Convertit une chaîne de caractères en majuscules.

expr représente toute expression qui donne une chaîne de caractères.

UPPER(expr)

Conseils sur l'utilisation de LISTAGG dans les fonctions de chaîne

Les conseils ci-dessous vous permettent d'utiliser la fonction LISTAGG pour tirer le meilleur parti du traitement des chaînes dans vos classeurs. Par exemple, vous voudrez peut-être créer une chaîne contenant toutes les villes d'une colonne de données.

Concaténer les valeurs multiples :

Utilisez LISTAGG pour concaténer plusieurs valeurs de chaîne en une cellule et une rangée.

LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
  • DISTINCT - Si les valeurs ne sont pas uniques, utilisez cet argument pour supprimer les valeurs en double.
  • ON OVERFLOW TRUNCATE - Si le résultat dépasse la longueur maximale autorisée, utilisez cet argument pour tronquer la chaîne retournée.
Exemple de données
Number City State
12     New York    New York
14     New York    New York
30     Boston      Massachusetts
18     Salem    Massachusetts
12     Buffalo     New York
10     Buffalo     New York
20     Albany      New York

Exemples de commandes et de sortie

LISTAGG(City, ', ') sorties "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"

LISTAGG(DISTINCT City, ', ') sorties "New York, Boston, Salem, Buffalo Albany"

LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...') sorties "New York, New York, Boston, Salem, Buffalo, ..."

Fonctions de système

La fonction de système USER retourne des valeurs concernant la session. Par exemple, le nom d'utilisateur que vous avez entré lorsque vous vous êtes connecté.

Fonction Exemple Description Syntaxe

DATABASE

 

Retourne le nom du domaine auquel vous êtes connecté.

DATABASE()

USER

 

Retourne le nom d'utilisateur pour le modèle sémantique auquel vous êtes connecté.

USER()

Fonctions de série chronologique

Les fonctions de série chronologique vous permettent d'agréger et de prévoir des données en fonction de dimensions de temps. Par exemple, vous pouvez utiliser la fonction AGO pour calculer les revenus d'il y a un an.

Les membres de la dimension Temps doivent être au niveau de la fonction ou à un niveau inférieur. Pour cette raison, une ou plusieurs colonnes identifiant les membres de manière unique au niveau donné ou à un niveau inférieur doivent être projetées dans l'interrogation.

Fonction Exemple Description Syntaxe

AGO

SELECT Year_ID, AGO(sales, year, 1)

Calcule la valeur agrégée d'une mesure pour une période spécifiée dans le passé. Par exemple, pour calculer les revenus mensuels d'il y a un an, utilisez AGO(Revenue, Year, 1, SHIP_MONTH). Pour calculer les revenus trimestriels du dernier trimestre, utilisez AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Où :

  • MEASURE représente la mesure à calculer, par exemple Revenue.
  • TIME_LEVEL représente l'intervalle de temps, qui doit être Year, Quarter, Month, Week ou Day.
  • OFFSET représente le nombre d'intervalles de temps utilisés pour le calcul pour une période passée, par exemple 1 pour une année.

PERIODROLLING

SELECT Month_ID, PERIODROLLING (monthly_sales, -1, 1)

Calcule l'agrégat d'une mesure pour la période commençant x unités de temps et se terminant y unités de temps par rapport à l'heure courante. Par exemple, PERIODROLLING peut calculer les ventes pour une période qui commence au trimestre avant et se termine au trimestre après le trimestre courant.

PERIODROLLING(measure, x [,y])

Où :

  • MEASURE représente le nom d'une colonne de mesure.
  • X est un nombre entier qui représente le décalage à partir de l'heure courante.
  • Y est un nombre entier qui représente le nombre d'unités de temps pour lesquelles la fonction doit effectuer le calcul.
  • HIERARCHY est un argument facultatif qui représente le nom d'une hiérarchie figurant dans une dimension de temps, telle que YR, MON, DAY que vous voulez utiliser pour calculer la fenêtre de temps.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Calcule la valeur agrégée d'une mesure depuis le début d'une période jusqu'à la période la plus récente, par exemple un cumul annuel.

Par exemple, pour calculer Year to Date Sales, utilisez TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Où :

  • MEASURE représente une expression qui référence au moins une colonne de mesure, par exemple, Sales.
  • TIME_LEVEL représente l'intervalle de temps, qui doit être Year, Quarter, Month, Week ou Day.