Partager via


Informations de référence sur les fonctions de calcul personnalisées

Cette page fournit une référence complète de toutes les fonctions prises en charge pour les calculs personnalisés dans les tableaux de bord IA/BI. Pour plus d’informations sur l’utilisation de calculs personnalisés, consultez Qu’est-ce que les calculs personnalisés ?.

Fonctions d'agrégation

Toutes les mesures calculées doivent être agrégées. Les opérations d’agrégation suivantes sont prises en charge :

Note

Utilisez le DISTINCT mot clé dans les fonctions d’agrégation pour inclure uniquement des valeurs uniques dans l’agrégation. De plus, la FILTER(WHERE condition) clause peut être ajoutée à n’importe quelle fonction d’agrégation pour limiter les valeurs incluses dans le calcul.

Fonction Descriptif
any(expr) Retourne true si au moins une valeur du expr groupe est true.
any_value(expr) Retourne une valeur de expr pour un groupe de lignes.
approx_count_distinct(expr[, relativeSD]) Retourne le nombre estimé de valeurs distinctes dans expr.
approx_percentile ([ALL | DISTINCT] expr, percentile [, précision]) Retourne la valeur approximative du expr au pourcentage spécifié.
avg(expr) Retourne la moyenne calculée dans une colonne ou une expression.
bool_or(expr) Retourne true si au moins une valeur de expr est true.
corr(expr1, expr2) Retourne le coefficient de corrélation Pearson entre expr1 et expr2.
count(*) Retourne le nombre de lignes dans un groupe.
count(DISTINCT expr) Retourne le nombre de lignes uniques dans un groupe.
count_if(expr) Retourne le nombre de lignes qui répondent à une condition donnée.
first(expr [, ignoreNull]) Retourne la première valeur d’un groupe expr.
first_value(expr [, ignoreNull]) Retourne la première valeur d’un groupe expr.
last(expr [, ignoreNull]) Retourne la dernière valeur du groupe expr.
last_value(expr [, ignoreNull]) Retourne la dernière valeur du groupe expr.
listagg(expr [, délimiteur]) Retourne la concaténation de valeurs non nulles dans le groupe.
max(expr) Retourne la valeur maximale dans une colonne ou une expression.
max_by(expr1, expr2) Retourne la valeur associée expr1 à la valeur maximale de expr2.
mean(expr) Retourne la moyenne calculée dans une colonne ou une expression.
median(expr) Retourne la médiane d’un ensemble de valeurs.
min(expr) Retourne la valeur minimale dans une colonne ou une expression.
min_by(expr1, expr2) Retourne la valeur associée expr1 à la valeur minimale de expr2.
mode(expr (déterministe)) Retourne la valeur la plus fréquente pour expr.
percentile(expr, pourcentage [, fréquence]) Retourne la valeur exacte du expr au centile spécifié dans un groupe.
percentile_approx(expr, pourcentage [, précision]) Retourne la valeur approximative du expr au pourcentage spécifié.
regr_slope(y, x) Retourne la pente de la ligne de régression linéaire pour les paires non null dans un groupe.
some(expr) Retourne true si au moins une valeur du expr groupe est true.
std(expr) Retourne l’écart type d’un ensemble de valeurs.
stddev(expr) Retourne l’écart type d’un ensemble de valeurs.
stddev_pop(expr) Retourne l’écart type de population d’un ensemble de valeurs.
stddev_samp(expr) Retourne l’exemple d’écart type d’un ensemble de valeurs.
string_agg(expr [, délimiteur]) Retourne la concaténation des valeurs de chaîne non NULL dans le groupe.
sum(expr) Retourne le total des valeurs d’une colonne ou d’une expression.
variance(expr) Retourne la variance d’un ensemble de valeurs.

Opérations arithmétiques

Vous pouvez combiner des expressions avec les opérations arithmétiques suivantes :

Opération Descriptif
expr1 % expr2 Retourne le reste de la division expr1 par expr2.
multiplicateur * multiplicand Retourne le produit de deux expressions.
expr1 + expr2 Retourne la somme de expr1 et expr2.
+ expr Retourne la valeur de l’expression.
expr1 - expr2 Retourne la différence en soustrayant expr2 de expr1.
- expr Retourne la valeur négative de l’expression.
dividende / diviseur Retourne le résultat de la division du dividende par le diviseur.
div de dividende diviseur Retourne la partie intégrale de la division de dividend par divisor.
abs(expr) Retourne la valeur absolue de l’expression numérique.
acos(expr) Retourne le cosinus inverse (cosinus d’arc) de expr.
asin(expr) Retourne le sinus inverse (sinus d’arc) de expr.
bround(expr [, d]) Retourne expr arrondi à d des décimales en utilisant HALF_EVEN mode arrondi.
ceil(expr) ou plafond(expr) Retourne le plus petit entier non inférieur à expr.
cos(expr) Retourne le cosinus de expr.
exp(expr) Retourne e à la puissance de expr.
floor(expr) Retourne le plus grand entier non supérieur à expr.
ln(expr) Retourne le logarithme naturel de l’expression.
log(base, expr) Retourne le logarithme de expr l’objet avec le fichier spécifié base.
log10(expr) Retourne le logarithme de base 10 de l’expression.
mod(expr1, expr2) Retourne le reste de la division expr1 par expr2.
nullifzero(expr) Retourne NULL si la valeur expr est 0, sinon renvoie expr.
pi() Retourne la valeur de pi.
pmod(expr1, expr2) Retourne la valeur positive du expr1 mod expr2.
pow(expr1, expr2) ou power(expr1, expr2) Renvoie le résultat de expr1 élevé à la puissance de expr2.
radians(expr) Convertit des degrés en radians.
rand([seed]) Retourne une valeur aléatoire avec une distribution uniforme comprise entre 0 (inclus) et 1 (exclusif).
arrondir(expr [, d]) Retourne expr arrondi à d des décimales en utilisant HALF_UP mode arrondi.
sign(expr) Retourne le signe de l’expression numérique.
sin(expr) Retourne le sinus de expr.
sqrt(expr) Retourne la racine carrée de expr.
try_add(expr1, expr2) Ajoute deux valeurs. Si une erreur se produit, retourne NULL.
try_divide(dividende, diviseur) Divise le dividende par le diviseur. Si une erreur se produit, retourne NULL.
try_multiply(multiplicateur, multiplicand) Multiplie deux nombres. Si une erreur se produit, retourne NULL.
try_subtract(expr1, expr2) Soustrait expr2 de expr1. Si une erreur se produit, retourne NULL.
zeroifnull(expr) Retourne 0 si expr c’est NULL, sinon renvoie expr.

Fonctions et opérateurs booléens

Les calculs personnalisés prennent en charge les opérateurs booléens et de comparaison de base. Les opérateurs et fonctions suivants sont pris en charge :

Opération Descriptif
expr1 != expr2 Retourne true si expr1 n’est pas égal à expr2.
!expr Logiquement non.
expr1 &expr2 Retourne le résultat de l'opération ET bit à bit entre expr1 et expr2.
expr1 && expr2 Retourne true si les deux expr1 et expr2 sont true.
expr1 <=> expr2 Retourne le même résultat que l’opérateur égal pour les opérandes non null, mais retourne true si les deux sont null, et false si l’un est null.
expr1 <> expr2 Retourne true si expr1 n’est pas égal à expr2.
expr1 < expr2 Retourne true si expr1 est inférieur à expr2.
expr1 <= expr2 Retourne true si expr1 est inférieur ou égal à expr2.
expr1 = expr2 Retourne true si expr1 égale expr2.
expr1 == expr2 Retourne true si expr1 égale expr2.
expr1 > expr2 Retourne true si expr1 est supérieur à expr2.
expr1 >= expr2 Retourne true si expr1 est supérieur ou égal à expr2.
expr1 ^ expr2 Retourne l’OU exclusif bit à bit de expr1 et expr2.
expr1 | expr2 Retourne l’OR au niveau du bit de expr1 et expr2.
expr1 || expr2 Retourne true si au moins l'un ou l'autre de expr1 ou expr2 est true.
~expr Retourne le NON binaire de expr.
expr1 et expr2 Retourne true si les deux expr1 et expr2 sont true.
expr entre la borne inférieure et la borne supérieure Teste si expr elle se trouve dans la plage spécifiée (syntaxe spéciale).
str ilike pattern Retourne true si str correspond à pattern (sans tenir compte de la casse). Peut également être utilisé en tant que ilike(str, pattern [, escapeChar]).
expr in (value1, value2, ...) Teste si expr elle correspond à une valeur dans une liste (syntaxe spéciale).
isnan(expr) Retourne true si expr naN (pas un nombre).
isnotnull(expr) Retourne true si expr n’a pas la valeur NULL.
isnull(expr) Retourne true si expr est NULL.
motif semblable à str Retourne true si str correspond pattern. Peut également être utilisé en tant que like(str, pattern [, escapeChar]).
non expr Négation logique (opérateur de préfixe). Peut également être utilisé en tant que not(expr).
expr1 ou expr2 Retourne true si au moins l'un ou l'autre de expr1 ou expr2 est true.
str regexp regexp Retourne true si str correspond à l’expression regexprégulière .
regexp_like(str, regexp) Retourne true si str correspond à l’expression regexprégulière .
str rlike regexp Retourne true si str correspond à l’expression regexprégulière .

Fonctions cast

Utilisez les fonctions suivantes pour convertir des valeurs en un type spécifié :

Fonction Descriptif
expr :: type Convertit la valeur expr au type de données cible type.
bigint(expr) Convertit la valeur expr en BIGINT.
boolean(expr) Convertit la valeur expr en BOOLEAN.
cast(expr AS type) Convertit la valeur expr au type de données cible type.
date(expr) Convertit la valeur expr en DATE.
decimal(expr [, p [, s]]) Convertit la valeur expr en DECIMAL avec une précision p et une échelle s.
double(expr) Convertit la valeur expr en DOUBLE.
float(expr) Convertit la valeur expr en FLOAT.
int(expr) Convertit la valeur expr en INT.
string(expr) Convertit la valeur expr en STRING.
timestamp(expr) Convertit la valeur expr en TIMESTAMP.
to_date(expr [, fmt]) Convertit le expr avec le fmt en une date.
to_timestamp(expr [, fmt]) Convertit les éléments expr et fmt en un horodatage.
try_cast(expr AS type) Convertit la valeur expr en toute sécurité au type de données cible type.
try_to_timestamp(expr [, fmt]) Analyse le expr avec le fmt pour obtenir un horodatage sécurisé.

Fonctions date, horodatage et intervalle

Utilisez les fonctions suivantes pour utiliser des dates, des horodatages et des intervalles :

Fonction Descriptif
add_months(date_de_début, nombre_de_mois) Retourne la date qui est num_months après start_date.
curdate() Retourne la date actuelle.
current_date() Retourne la date actuelle.
current_timestamp() Retourne l’horodatage actuel.
date_add(date_début, nombre_jours) Retourne la date qui est num_days après start_date.
date_diff(endDate, startDate) Retourne le nombre de jours compris entre startDateendDate.
date_format(expr, fmt) Convertit un timestamp en une chaîne au format fmt.
date_part(champ, source) Extrait une partie spécifique, telle que l’année, le mois ou le jour, à partir d’une date ou d’un horodatage.
date_sub(start_date, num_days) Retourne la date qui est num_days avant start_date.
date_trunc(fmt, source) Tronque une date ou un horodatage à une unité spécifiée, telle que l’année ou le mois.
ajouterdate(unité, valeur, expr) Ajoute l’intervalle de temps spécifié à une date ou un horodatage.
datediff(endDate, startDate) Retourne le nombre de jours compris entre startDateendDate.
day(expr) Retourne le jour du mois à partir de la date ou de l’horodatage.
dayname(expr) Retourne le nom du jour de la semaine basé sur une date ou un horodatage.
dayofmonth(expr) Retourne le jour du mois à partir de la date ou de l’horodatage.
dayofweek(expr) Retourne le jour de la semaine à partir de la date ou de l’horodatage (1 = Dimanche, 7 = Samedi).
dayofyear(expr) Retourne le jour de l’année à partir de la date ou de l’horodatage.
extract(field FROM source) Extrait une partie de la date ou de l’horodatage.
from_unixtime(unix_time [, fmt]) Convertit le nombre de secondes depuis l'époque Unix en un horodatage.
from_utc_timestamp(timestamp, fuseau horaire) Interprète l’horodatage donné comme UTC et se convertit en fuseau horaire donné.
getdate() Retourne l’horodatage actuel.
hour(expr) Retourne le composant d’heure de l’horodatage.
last_day(expr) Retourne le dernier jour du mois auquel appartient la date ou l’horodatage.
make_date(année, mois, jour) Crée une date à partir des champs année, mois et jour.
make_timestamp(année, mois, jour, heure, min, s [, fuseau horaire]) Crée un horodatage de l’année, du mois, du jour, de l’heure, de la minute, de la seconde et éventuellement des champs de fuseau horaire.
minute(expr) Retourne le composant minute de l’horodatage.
month(expr) Retourne le composant mois de la date ou de l’horodatage.
months_between(timestamp1, timestamp2 [, roundOff]) Retourne le nombre de mois entre timestamp1 et timestamp2.
prochain_jour(start_date, day_of_week) Retourne la première date qui est postérieure à start_date et nommée day_of_week.
now() Retourne l’horodatage actuel.
quarter(expr) Retourne le trimestre de l’année pour la date ou le moment (1 à 4).
second(expr) Retourne le deuxième composant de l’horodatage.
timediff(endDate, startDate) Retourne la différence entre deux horodatages mesurés en unités.
timestamp_micros(microsecondes) Crée un horodatage à partir du nombre de microsecondes depuis l’époque Unix.
timestamp_millis(millisecondes) Crée un horodatage à partir du nombre de millisecondes depuis l’époque Unix.
timestamp_seconds(secondes) Crée un horodatage à partir du nombre de secondes depuis l’époque Unix.
timestampadd(unité, valeur, horodatage) Ajoute l’intervalle de temps spécifié à un horodatage.
timestampdiff(unité, début, fin) Retourne la différence entre deux horodatages mesurés en unités.
to_date(expr [, fmt]) Convertit le expr avec le fmt en une date.
to_timestamp(expr [, fmt]) Convertit les éléments expr et fmt en un horodatage.
to_unix_timestamp(expr [, fmt]) Renvoie l'horodatage Unix du moment spécifié.
to_utc_timestamp(timestamp, fuseau horaire) Interprète l’horodatage donné dans le fuseau horaire donné et se convertit en UTC.
trunc(expr, fmt) Retourne expr avec la partie temporelle de la journée tronquée à l’unité spécifiée par le modèle de format fmt.
unix_micros(timestamp) Retourne le nombre de microsecondes depuis l’époque Unix.
unix_millis(timestamp) Retourne le nombre de millisecondes depuis l’époque Unix.
unix_seconds(timestamp) Retourne le nombre de secondes depuis l’époque Unix.
unix_timestamp([expr [, fmt]]) Renvoie l'horodatage Unix du moment spécifié.
weekday(expr) Retourne le jour de la semaine à partir d'une date ou d'un horodatage (0 = Lundi, 6 = Dimanche).
weekofyear(expr) Retourne la semaine de l’année à partir de la date ou du timestamp.
year(expr) Retourne le composant année de la date ou de l’horodatage.

Fonctions de chaîne

Utilisez les fonctions suivantes pour transformer des chaînes. Pour transformer des chaînes datetime, consultez les fonctions Cast.

Fonction Descriptif
base64(expr) Convertit l’argument en chaîne base64.
char(expr) Retourne le caractère au point de code UTF-16 fourni.
charindex(substr, str [, pos]) Retourne la position de la première occurrence de substr dans str après la position pos.
concat(expr1, expr2 [, ...]) Retourne la concaténation des arguments.
concat_ws(sep [, expr1 [, ...]]) Retourne la concaténation des chaînes séparées par sep.
contient(gauche, droite) Retourne true si right est trouvée dans left.
convert_timezone(sourceTz, targetTz, sourceTs) Convertit l’horodatage sourceTs du sourceTz fuseau horaire en targetTz fuseau horaire.
decode(expr, charSet) Traduit le binaire expr en chaîne à l’aide de l’encodage charSetdu jeu de caractères.
seTerminePar(gauche, droite) Retourne true si left se termine par right.
find_in_set(str, str_array) (Fonction utilisée dans la programmation pour trouver une chaîne dans un ensemble) Retourne l’index (basé sur 1) de la chaîne donnée dans la liste délimitée par des virgules.
format_number(expr, scale) Formats expr tels que #,###,###.##, arrondis à scale décimales.
format_string(format, expr [, ...]) Retourne une chaîne mise en forme à partir de chaînes de format printf.
hex(expr) Convertit expr en hexadécimal.
initcap(str) Retourne str avec la première lettre de chaque mot en majuscules.
instr(str, substr) Retourne la position de la première occurrence de substr dans str.
lcase(str) Retourne str avec tous les caractères modifiés en minuscules.
left(str, len) Retourne les len caractères à gauche de la chaîne str.
len(expr) Retourne la longueur de la chaîne ou de l’expression binaire.
longueur(expr) Retourne la longueur de la chaîne ou de l’expression binaire.
levenshtein(str1, str2 [, threshold]) Retourne la distance Levenshtein entre les deux chaînes données.
locate(substr, str [, pos]) Retourne la position de la première occurrence de substr dans str après la position pos.
lower(str) Retourne str avec tous les caractères modifiés en minuscules.
lpad(str, len [, pad]) Retourne str rempli à gauche avec pad pour donner une longueur de len.
ltrim(str [, trimStr]) Supprime les caractères de début de str.
md5(expr) Retourne une somme de contrôle MD5 de 128 bits sous forme de chaîne hexadécimale.
parse_url(url, partToExtract [, clé]) Extrait une partie de url.
position(substr, str [, pos]) Retourne la position de la première occurrence de substr dans str après la position pos.
printf(format, expr [, ...]) Retourne une chaîne mise en forme à partir de chaînes de format printf.
regexp_count(str, regexp) Retourne le nombre de fois où l’expression regexp régulière correspond à str.
regexp_extract(str, regexp [, idx]) Extrait un groupe qui correspond à regexp.
regexp_instr(str, regexp) Retourne la position de la première correspondance de regexp dans str.
regexp_replace(str, regexp, rep [, position]) Remplace toutes les sous-chaînes de str qui correspondent à regexp par rep.
regexp_substr(str, regexp) Retourne la sous-chaîne qui correspond à l’expression regexp régulière dans str.
repeat(str, n) Retourne la chaîne qui se répète strn fois.
remplacer(str, rechercher [, remplacer]) Remplace toutes les occurrences de search par replace dans str.
reverse(str) Retourne str avec l’ordre des caractères inversés.
right(str, len) Retourne les len derniers caractères de la chaîne str.
rtrim([trimStr,] str) Retourne str avec les caractères de fin supprimés.
sha2(expr, bitLength) Retourne la famille SHA-2 de fonctions de hachage.
split_part(str, délimiteur, partNum) Fractionne strdelimiter et retourne la partie demandée.
startswith(gauche, droite) Retourne true si left commence par right.
substr(str, pos [, len]) Retourne la sous-chaîne de str, à partir de pos, avec une longueur de len.
substring(str, pos [, len]) Retourne la sous-chaîne de str, à partir de pos, avec une longueur de len.
substring_index(str, delim, count) Retourne la sous-chaîne avant count les occurrences de delim.
to_char(expr [, fmt]) Convertit expr à une chaîne.
to_number(expr [, fmt]) Convertit la chaîne expr en nombre.
translate(input, from, to) Traduit input en remplaçant les caractères dans from par les caractères correspondants dans to.
trim(str [, trimStr]) Supprime les caractères de début et de fin de str.
ucase(str) Retourne str avec tous les caractères transformés en majuscules.
upper(str) Retourne str avec tous les caractères transformés en majuscules.
url_encode(str) Encodage str pour une utilisation de paramètres de requête d’URL.

Fonctions diverses

Les fonctions suivantes sont également prises en charge :

Fonction Descriptif
AGRÉGER PAR Calcule des valeurs sur des intervalles de temps ou d’autres ensembles ordonnés pour les mesures.
CASE expr { WHEN opt1 THEN res1 } [...] [ELSE def] FIN Retourne resN pour le premier optN qui est égal à expr ou def s’il n’y a aucune correspondance.
CASE { WHEN cond1 THEN res1 } [...] [ELSE def] FIN Retourne resN pour le premier condN qui prend la valeur true, ou def si aucun n’est trouvé.
coalesce(expr1, expr2 [, ...]) Retourne le premier argument non nul.
decode(expr, recherche, résultat [, recherche, résultat]... [, par défaut]) Compare expr à chaque valeur de recherche et retourne les résultats correspondants.
get_json_object(json_txt, chemin) Extrait un objet JSON de json_txt à l’emplacement spécifié path.
greatest(expr [, ...]) Retourne la valeur la plus élevée de tous les paramètres.
hash(expr1 [, expr2 ...]) Retourne une valeur de hachage des arguments.
if(condition, valeur_vraie, valeur_fausse) Retourne true_value si condition est true, sinon retourne false_value.
iff(condition, true_value, false_value) Retourne true_value si condition est true, sinon retourne false_value.
ifnull(expr1, expr2) Retourne expr2 si expr1 c’est null, ou expr1 sinon.
json_array_length(jsonArray) Retourne le nombre d’éléments dans le tableau JSON le plus externe.
least(expr [, ...]) Retourne la valeur la moins élevée de tous les paramètres.
monotonically_increasing_id() Retourne des entiers 64 bits à incrémentation monotone.
nullif(expr1, expr2) Retourne NULL si expr1 est égal à expr2, sinon retourne expr1.
nvl(expr1, expr2) Retourne expr2 si expr1 c’est NULL, ou expr1 sinon.
nvl2(expr1, expr2, expr3) Retourne expr2 si expr1 n'est pas NULL, ou expr3 autrement.
schema_of_json(json [, options]) Retourne le schéma au format DDL de la chaîne JSON.