Fonctions

Il existe plusieurs types de fonction que vous pouvez utiliser dans les expressions.

Rubriques :

Fonctions d'analyse

Les fonctions d'analyse vous permettent d'explorer des données à l'aide de modèles comme les prévisions, les lignes de tendance et les clusters. Vous pouvez également glisser-déplacer des fonctions d'analyse vers l'éditeur de classeur.

Vous pouvez également ajouter des prévisions, des lignes de tendance et des clusters à un classeur en les sélectionnant dans l'onglet Analyses du panneau de données dans l'éditeur de classeur. Reportez-vous à Ajout 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)

Collecte un ensemble d'enregistrements dans des groupes en fonction d'expressions d'entrée à l'aide de la classification par partitionnement ou de la création de clusters hiérarchiques.

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

FORECAST

Exemple de la prévision du chiffre d'affaires par jour

Cet exemple sélectionne la prévision du chiffre d'affaires 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 la prévision du chiffre d'affaires par année et trimestre

Cet exemple sélectionne la prévision du chiffre d'affaires 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 chronologique de l'indicateur spécifié sur la série à l'aide du lissage exponentiel (ETS), d'ARIMA saisonnier ou d'ARIMA. Cette fonction génère une prévision pour l'ensemble de périodes spécifié par l'argument numPeriods.

Reportez-vous également aux options de la fonction FORECAST ci-dessous.

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

Où :

  • measure représente l'indicateur à prévoir (par exemple, des données de revenu).

  • series représente le niveau de précision temporelle utilisé pour créer le modèle de prévision. Il s'agit d'une liste de colonnes de dimension Temps. Si series est omis, le niveau de détail temporel est déterminé par la requête.

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

  • options représente la liste des chaînes de paires nom/valeur séparées par des points-virgules (;). 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 des colonnes et des options sont évaluées et résolues pendant un temps d'exécution de requête individuel.

Reportez-vous également aux options 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'expressions d'entrée à l'aide de la classification par partitionnement, de la création de clusters hiérarchiques ou d'algorithmes de détection de valeur aberrante à 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', '')

Ajuste un modèle linéaire et renvoie le modèle ajusté 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 l'application d'une fonction TRENDLINE à l'aide de la propriété Ajouter des statistiques lors de l'affichage d'une visualisation. Reportez-vous à Réglage des propriétés de visualisation.

Ajuste un modèle linéaire, polynomial ou exponentiel, et renvoie le modèle ajusté ou les valeurs ajustées. numeric_expr représente la valeur Y de la tendance et les séries (series) (colonnes de temps) représentent la valeur X.

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

Options de la fonction FORECAST Le tableau suivant répertorie les options disponibles pour utilisation avec la fonction FORECAST.

Nom de l'option Valeurs Description
numPeriods Entier Nombre de périodes à prévoir.
predictionInterval De 0 à 100, où les valeurs élevées indiquent un niveau de confiance plus élevé. Niveau de confiance de la prévision.
modelType

ETS (Lissage exponentiel)

SeasonalArima

ARIMA

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

TRUE

FALSE

Si la valeur est TRUE, la transformation Box-Cox est utilisée.
lambdaValue Non applicable

Paramètre de transformation Box-Cox.

Option non prise en compte si la valeur est NULL ou si useBoxCox a la valeur FALSE.

Sinon, les données sont transformées avant l'estimation du modèle.

trendDamp

TRUE

FALSE

Option spécifique du modèle de lissage exponentiel.

Si la valeur est TRUE, la tendance amortie est utilisée. Si la valeur est FALSE ou NULL, la tendance non amortie est utilisée.

errorType

Non applicable

Option spécifique du modèle de lissage exponentiel.
trendType

N (aucun)

A (additif)

M (multiplicatif)

Z (sélectionné automatiquement)

Option spécifique du modèle de lissage exponentiel.
seasonType

N (aucun)

A (additif)

M (multiplicatif)

Z (sélectionné automatiquement)

Option spécifique du modèle de lissage exponentiel.
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (valeur par défaut)

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

Fonctions de conversion

Les fonctions de conversion convertissent une valeur d'un format à un autre.

Fonction Exemple Description Syntaxe

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Modifie le type de données d'une expression ou d'un littéral NULL en un autre type de données. Par exemple, vous pouvez convertir customer_name (type de données CHAR ou VARCHAR) ou birthdate (littéral de date/heure).

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

N'utilisez pas TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Vérifie si une expression donne une valeur NULL et, le cas échéant, attribue 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 afin de renvoyer la colonne appropriée pour que l'utilisateur connecté puisse la visualiser.

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 égales, la fonction renvoie la valeur NULL. Si elles ne sont pas égales, la fonction renvoie la première expression. Vous ne pouvez pas spécifier le littéral NULL 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 type chaîne de format DateTime en type de données DateTime.

To_DateTime([expression], [literal])

VALUEOF

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

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

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

VALUEOF(expr)

Fonctions d'extraction de date

Ces fonctions calculent les valeurs d'horodatage ou les arrondissent à la période inférieure la plus proche, comme l'heure, le jour, la semaine, le mois ou le trimestre.

Vous pouvez utiliser les horodatages calculés pour agréger les données avec une précision différente. Par exemple, vous pouvez appliquer la fonction EXTRACTDAY() à des dates de commande pour calculer un horodatage de minuit le jour de la commande, afin de pouvoir agréger les données par jour.

Fonction Exemple Description Syntaxe

Extraire le jour

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

Renvoie un horodatage de minuit (12 AM) le jour de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 3:02:01 AM le 22 février, la fonction renvoie l'horodatage 12:00:00 AM le 22 février.

EXTRACTDAY(expr)

Extraire l'heure

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

Renvoie un horodatage du début de l'heure de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 11:18:30 PM, la fonction renvoie l'horodatage 11:00:00 PM.

EXTRACTHOUR (expr)

Extraire l'heure du jour

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

Renvoie un horodatage dans lequel l'heure correspond à l'heure de la valeur d'entrée avec des 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 renvoie 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 renvoie 1997/01/07 18:42:01.265.
Renvoie 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 renvoie l'horodatage 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extraire les minutes

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

Renvoie un horodatage du début de la minute de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 11:38:21 AM, la fonction renvoie l'horodatage 11:38:00 AM.

EXTRACTMINUTE (expr)

Extraire le mois

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

Renvoie un horodatage du 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 renvoie l'horodatage du 1er février.

EXTRACTMONTH(expr)

Extraire le trimestre

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

  • 9/2/2022 10:38:21 AM renvoie 7/1/2022 12:00:00 AM, premier jour du troisième trimestre fiscal.

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

Renvoie un horodatage du premier jour du trimestre de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est compris dans le troisième trimestre fiscal, la fonction renvoie l'horodatage du 1er juillet.

EXTRACTQUARTER(expr)

Extraire les secondes

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

Renvoie un horodatage de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est 15:32:02.150, la fonction renvoie l'horodatage 15:32:02.

EXTRACTSECOND(expr)

Extraire la semaine

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

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

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

EXTRACTWEEK(expr)

Extraire l'année

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

Renvoie un horodatage du 1er janvier de l'année de la valeur d'entrée. Par exemple, si l'horodatage d'entrée est compris dans l'année 1967, la fonction renvoie l'horodatage du 1er janvier 1967.

EXTRACTYEAR (expr)

Conseils relatifs à l'utilisation de dimensions de date dans les domaines

Voici quelques conseils pour obtenir les meilleurs résultats lorsque vous utilisez des dates de domaine dans des 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 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 pourriez rencontrer les dates de domaine ci-après.
La description de GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png est la suivante
.png

Pour extraire les mois à partir 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 à l'ensemble de résultats d'une requête.

Fonction Exemple Description Syntaxe

BottomN

BottomN(Sales, 10)

Renvoie les n plus faibles valeurs de l'expression, classées de la plus faible à la plus forte.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Calcule l'expression à l'aide du filtre de pré-agrégation donné.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Calcule une moyenne mobile des n dernières lignes de données dans l'ensemble de résultats, en comptant la ligne active.

MAVG([NumericExpression], [integer])

MSUM

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

Calcule le cumul des n dernières lignes de données, en comptant la ligne active.

Le cumul de la première ligne est égal à l'expression numérique de cette ligne. Le cumul de la deuxième ligne est calculé à partir du cumul des deux premières lignes de données, et ainsi de suite. Lorsque la n ième ligne est atteinte, le cumul est calculé en fonction des n dernières lignes de données.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Détermine le rang d'une valeur en matière de plage définie par l'utilisateur. Elle renvoie des entiers pour représenter toute plage de rangs. L'exemple présente une plage allant de 1 à 100, où la plus faible vente = 1 et la plus forte vente = 100.

NTILE([NumericExpression], [integer])

PERCENTILE

PERCENTILE(Sales)

Calcule le rang en pourcentage de chacune des valeurs répondant à l'argument de l'expression numérique. Les plages du rang en pourcentage vont de 0 (1er centile) à 1 (100e centile) inclus.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Calcule le rang de chaque valeur répondant à l'argument de l'expression numérique. Le rang 1 est attribué au plus grand nombre et chaque rang successif dispose du prochain entier consécutif (2, 3, 4...). Si certaines valeurs sont égales, le même rang leur est attribué (par exemple, 1, 1, 1, 4, 5, 5, 7, etc.).

RANK([NumericExpression])

RCOUNT

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

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

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Utilise un ensemble d'enregistrements en tant qu'entrée et affiche la valeur maximale parmi les enregistrements détectés jusqu'à présent. Le type de données spécifié doit pouvoir faire l'objet d'un tri.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Utilise un ensemble d'enregistrements en tant qu'entrée et affiche la valeur minimale parmi les enregistrements détectés jusqu'à présent. Le type de données spécifié doit pouvoir faire l'objet d'un tri.

RMIN([NumericExpression])

RSUM

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

Calcule le cumul sur la base des enregistrements détectés jusqu'à présent.

Le cumul de la première ligne est égal à l'expression numérique de cette ligne. Le cumul de la deuxième ligne est calculé à partir du cumul des deux premières lignes de données, et ainsi de suite.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Renvoie les n plus fortes valeurs de l'expression, classées de la plus forte à la plus faible.

TOPN([NumericExpression], [integer])

Conseils relatifs à l'utilisation des fonctions d'affichage

  • FILTER : si vous créez un rapport à l'aide d'un domaine, utilisez les hiérarchies définies dans ce dernier au lieu de filtrer les colonnes de hiérarchie directement dans un calcul. En d'autres termes, si un domaine dispose d'une hiérarchie pour Période\Exercice\Trimestre fiscal, évitez les fonctions suivantes :

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

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

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

Fonctions d'évaluation

Les fonctions d'évaluation sont des fonctions de base de données qui peuvent être utilisées pour transmettre des expressions afin d'obtenir des calculs avancés.

Les fonctions de base de données imbriquées peuvent exiger au moins une colonne. Ces colonnes sont référencées par %1 ... %N dans la fonction. Les colonnes effectives doivent être énuméré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 des colonnes référencées facultatives en tant que paramètres, à la base de données à des 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 des colonnes référencées facultatives en tant que paramètres, à la base de données à des fins d'évaluation. Cette fonction est destinée aux fonctions d'agrégation comportant une 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 exécutent 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 le cosinus inverse d'une expression numérique.

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

ACOS(expr)

ASIN

ASIN(1)

Calcule le sinus inverse d'une expression numérique.

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

ASIN(expr)

ATAN

ATAN(1)

Calcule la tangente inverse d'une expression numérique.

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

ATAN(expr)

ATAN2

ATAN2(1, 2)

Calcule la tangente inverse 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 n'étant pas un entier à l'entier supérieur le plus proche. Si l'expression numérique équivaut à un entier, la fonction CEILING renvoie ce nombre 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)

Elève la valeur à la puissance indiquée. Calcule e à la puissance n, e étant la base du logarithme naturel.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

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

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Arrondit une expression numérique non entière à l'entier suivant le plus bas. Si l'expression numérique équivaut à un entier, la fonction FLOOR renvoie ce nombre 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 renvoie la partie résiduelle du quotient.

MOD(expr1, expr2)

PI

PI()

Renvoie la valeur constante de pi.

PI()

POWER

POWER(Profit, 2)

Part de la première expression numérique pour l'élever à la puissance indiqué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()

Cette fonction renvoie un nombre pseudo-aléatoire compris entre 0 et 1.

RAND()

RANDFromSeed

RAND(2)

Cette fonction renvoie un nombre pseudo-aléatoire basé sur une valeur de départ. Le même ensemble de nombres aléatoires est généré pour une valeur de départ donnée.

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 qui correspond au nombre de chiffres de précision.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Renvoie la valeur suivante :

  • 1 si l'expression numérique renvoie un nombre positif

  • -1 si l'expression numérique renvoie un nombre négatif

  • 0 si l'expression numérique équivaut à 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 correspondre à un nombre non négatif.

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 renvoyer un nombre donné de chiffres après la virgule.

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

integer représente tout entier positif qui correspond au nombre de caractères après la virgule.

TRUNCATE(expr, integer)

Fonctions d'agrégation courante

Les fonctions d'agrégation courante permettent d'effectuer des opérations sur plusieurs valeurs pour obtenir un récapitulatif des résultats.

Fonction Exemple Description Syntaxe

MAVG

 

Calcule une moyenne mobile des n dernières lignes de données dans l'ensemble de résultats, en comptant la ligne active.

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

MAVG(expr, integer)

MSUM

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

Calcule le cumul des n dernières lignes de données, en comptant la ligne active.

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

MSUM(expr, integer)

RSUM

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

Calcule le cumul sur la base des enregistrements détecté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 ensemble d'enregistrements en tant qu'entrée et calcule le nombre d'enregistrements détecté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 ensemble d'enregistrements en tant qu'entrée et affiche la valeur maximale parmi les enregistrements détecté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 ensemble d'enregistrements en tant qu'entrée et affiche la valeur minimale parmi les enregistrements détecté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 de réaliser une analyse géographique lors de la modélisation des données. Par exemple, vous pouvez calculer la distance entre deux zones géographiques (appelées formes ou polygones).

Remarque :

Vous ne pouvez pas employer ces fonctions spatiales dans les calculs personnalisés pour les 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 se trouve à l'intérieur d'une autre forme. Renvoie TRUE ou FALSE en tant que chaîne (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Détermine si deux formes se trouvent à moins de la distance indiquée l'une de l'autre. Renvoie TRUE ou FALSE en tant que chaîne (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Fonctions de chaîne

Les fonctions de chaîne permettent d'effectuer diverses manipulations de caractère. Elles fonctionnent sur des 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 lui correspondant (entre 0 et 255). Si l'expression de caractère contient plusieurs caractères, le code ASCII correspondant au premier caractère de cette expression est renvoyé.

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

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Renvoie la longueur d'une chaîne, exprimée en bits. Chaque caractère Unicode a 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)

Renvoie la longueur d'une chaîne, exprimée en nombres de caractères. Les espaces vides de début et de fin ne sont pas pris en compte 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 une virgule.

Avec CONCAT, vous devez utiliser des données brutes, et non des données formatées.

CONCAT(expr1, expr2)

INSERT

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

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

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

integer1 est un entier positif représentant le nombre de caractères à partir du début de la chaîne cible qui correspond à la position où la deuxième chaîne doit être insérée.

integer2 est un entier positif représentant le nombre de caractères dans la chaîne cible à remplacer par la deuxième chaîne.

expr2 représente toute expression qui donne une chaîne de caractères. Elle 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

Renvoie un nombre donné 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 est un entier positif représentant le nombre de caractères à renvoyer à partir de la gauche de la chaîne.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Renvoie la longueur d'une chaîne, exprimée en nombres de caractères. La longueur renvoyée ne tient pas compte des espaces vides de fin.

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

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Renvoie 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 renvoie la valeur 0.

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

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

Elle identifie la chaîne faisant l'objet de la recherche.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Comme LOCATE, renvoie la position numérique d'une chaîne de caractères dans une autre chaîne de caractères. LOCATEN inclut un argument entier qui permet d'indiquer une position de départ pour la recherche.

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

expr2 représente toute expression qui donne une chaîne de caractères. Elle identifie la chaîne faisant l'objet de la recherche.

integer représente tout entier positif (différent de zéro) correspondant à la position de début de 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')

Renvoie le nombre d'octets d'une chaîne spécifiée.

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

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Renvoie la position numérique de strExpr1 dans une expression de caractères. Lorsque strExpr1 est introuvable, la fonction renvoie 0.

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

expr2 représente toute expression qui donne une chaîne de caractères. Elle identifie la chaîne cible faisant l'objet de la recherche. Par exemple, "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Répète une expression donnée n fois.

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

integer est un entier positif représentant le nombre de répétitions de la chaîne de caractères.

REPEAT(expr, integer)

REPLACE

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

Remplace des caractères d'une expression de caractères 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 dans laquelle des caractères doivent être remplacés.

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

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

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Renvoie un nombre précis de caractères issus de la partie droite d'une chaîne.

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

integer est un entier positif représentant le nombre de caractères à renvoyer à partir de la droite de la chaîne.

RIGHT(expr, integer)

SPACE

SPACE(2)

Insère des espaces vides.

integer représente tout entier positif qui indique le nombre d'espaces à insérer.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Crée une chaîne commençant par un nombre fixe de caractères dans la chaîne d'origine.

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

startPos est un entier positif représentant le nombre de caractères à partir du début du côté gauche de la chaîne qui indique où le résultat doit commencer.

SUBSTRING([SourceString] FROM [StartPosition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Comme SUBSTRING, crée une chaîne commençant par un nombre fixe de caractères dans la chaîne d'origine.

SUBSTRINGN inclut un argument entier qui permet d'indiquer 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 est un entier positif représentant le nombre de caractères à partir du début du côté gauche de la chaîne qui indique 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. Lorsque vous omettez cette spécification (et les apostrophes obligatoires), un espace 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. Lorsque vous omettez cette spécification (et les apostrophes obligatoires), un espace 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. Lorsque vous omettez cette spécification (et les apostrophes obligatoires), un espace 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 relatifs à l'utilisation des fonctions de chaîne

Voici quelques conseils pour obtenir les meilleurs résultats lors de l'utilisation des fonctions de chaîne dans vos classeurs.

Concaténation de plusieurs valeurs :

Utilisez LISTAGG pour concaténer plusieurs valeurs dans une cellule et une ligne.

listagg(<column to concatenate> by <grouping column>)

Ajoutez on overflow truncate si la chaîne obtenue est trop longue et ajoutez distinct si les valeurs ne sont pas uniques.

Par exemple :

listagg(distinct City_ID by STATE on overflow truncate)

Fonctions système

La fonction système USER renvoie des valeurs liées à la session. Par exemple, le nom utilisateur avec lequel vous vous êtes connecté.

Fonction Exemple Description Syntaxe

DATABASE

 

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

DATABASE()

USER

 

Renvoie le nom utilisateur du modèle sémantique auquel vous êtes connecté.

USER()

Fonctions de séries temporelles

Les fonctions de séries temporelles permettent d'effectuer des agrégations et des prévisions de données reposant sur les dimensions Temps. Par exemple, vous pouvez utiliser la fonction AGO pour calculer les revenus de l'année précédente.

Les membres de dimension Temps doivent être au niveau de la fonction ou en dessous. Ainsi, au moins une colonne identifiant de manière unique les membres situés au niveau donné ou à un niveau inférieur doivent être projetées dans la requête.

Fonction Exemple Description Syntaxe

AGO

SELECT Year_ID, AGO(sales, year, 1)

Calcule la valeur agrégée d'un indicateur dans une période donnée dans le passé. Par exemple, pour calculer le revenu mensuel de l'année précédente, 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 l'indicateur à calculer, par exemple le revenu.
  • TIME_LEVEL représente l'intervalle, qui peut être Year, Quarter, Month, Week ou Day.
  • OFFSET représente le nombre d'intervalles à prendre en compte pour le calcul, par exemple, 1 pour 1 année.

PERIODROLLING

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

Calcule l'agrégat d'un indicateur au cours de la période commençant à x unités de temps et finissant à y unités de temps de l'heure en cours. Par exemple, PERIODROLLING peut calculer les ventes sur une période qui commence à un trimestre donné avant le trimestre en cours et se termine à un trimestre donné après le trimestre en cours.

PERIODROLLING(measure, x [,y])

Où :

  • MEASURE représente le nom d'une colonne d'indicateur.
  • X est un entier qui représente le décalage avec l'heure en cours.
  • Y est un entier qui représente le nombre d'unités de temps sur lesquelles le calcul est effectué par la fonction.
  • HIERARCHY est un argument facultatif qui représente le nom d'une hiérarchie dans une dimension Temps, comme YR, MON, DAY, à utiliser pour calculer la fenêtre de temps.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Calcule la valeur agrégée d'un indicateur à partir du début d'une période jusqu'à la dernière période, comme des calculs de cumul annuel.

Par exemple, pour calculer les ventes cumulées de l'exercice, utilisez TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Où :

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