Fonctions DDSQL (aperçu)

Fonctions d’agrégation

Les fonctions d’agrégation calculent un résultat unique à partir d’un ensemble de valeurs d’entrée, généralement utilisées en conjonction avec une instruction GROUP BY.

avg

NomTypes d’argumentsType de retourRôle
avg(expr e)numericnumericCalcule la moyenne (arithmétique) de toutes les valeurs d’entrée non nulles.

max

NomTypes d’argumentsType de retourRôle
max(expr e)variablevariableCalcule le maximum des valeurs d’entrée non nulles. Les types des valeurs d’entrée doivent être comparables.

min

NomTypes d’argumentsType de retourRôle
min(expr e)variablevariableCalcule le minimum des valeurs d’entrée non nulles. Les types des valeurs d’entrée doivent être comparables.

sum

NomTypes d’argumentsType de retourRôle
sum(expr e)numericnumericCalcule la somme des valeurs d’entrée non nulles.

count

NomTypes d’argumentsType de retourRôle
count(expr e)numericnombre entierCalcule le nombre de lignes d’entrée pour lesquelles la valeur d’entrée n’est pas nulle.
count(distinct expr e1, e2 …)nombre entierCalcule le nombre de valeurs d’entrée pour lesquelles la valeur d’entrée n’est pas nulle.
count(*)nombre entierCalcule le nombre de lignes d’entrée.

string_agg

NomTypes d’argumentsType de retourRôle
string_agg(expr e, delimiter e)string, stringchaîneConcatène les valeurs d’entrée, séparées par un délimiteur.

array_agg

NomTypes d’argumentsType de retourRôle
string_agg(expr e)variablearrayConcatène les valeurs d’entrée dans un tableau.

Fonctions scalaires

Ces fonctions renvoient une valeur par ligne.

Fonctions et opérateurs de chaînes

NomType de retourRôle
upper(text s)texteConvertit s en majuscules.
lower(text s)texteConvertit s en minuscules.
length(text s)nombre entierCompte le nombre de caractères dans s.
concat(expr x, y, …)texteConcatène les expressions fournies.
substr(expr s, numeric start, numeric numChars)texteRenvoie une sous-chaîne de s à partir de start jusqu’à un maximum de numChars, si fourni. start est un index basé sur 1, donc substr('hello', 2) renvoie 'ello'. Si start est inférieur à 1, il est traité comme s’il valait 1. Le résultat est calculé en prenant la plage de caractères [start, start+numChars], où toute valeur inférieure à 1 est traitée comme 1. Ainsi, substr('hello', -2, 4) renvoie 'h'.
replace(text s, text from, text to)texteRemplace toutes les occurrences dans s de la sous-chaîne from par la sous-chaîne to.
regexp_replace(text s, text pattern, text replacement)texteRemplace dans s les sous-chaînes correspondant à l’expression régulière POSIX pattern par replacement. Prend en charge la syntaxe des expressions régulières de Go.
reverse(expr text)stringInverse la chaîne (brown → nworb).
md5(expr texte)chaîne de caractèresCalcule le hachage MD5 d’une chaîne de caractères et renvoie le résultat en hexadécimal.
char_length(str text)integerRenvoie le nombre de caractères dans str.
left(str text, n int)textRenvoie les n premiers caractères de la chaîne. Lorsque n est négatif, renvoie tous les caractères sauf les derniers.
right(str text, n int)textRenvoie les n derniers caractères de str. Lorsque n est négatif, renvoie tous les caractères sauf les premiers.
ltrim(str text [, characters text])texteSupprime la plus longue chaîne contenant uniquement des caractères de caractères (un espace par défaut) au début de str.
rtrim(str text [, characters text])textSupprime la chaîne la plus longue contenant uniquement des caractères de caractères (un espace par défaut) à la fin de str.
rtrim(str text [, characters])texteSupprime la chaîne la plus longue contenant uniquement les caractères (un espace par défaut) du début/de la fin/des deux extrémités de str.
sort_order_ip(ip text)textRenvoie une chaîne représentant un ordre de tri sur les plages IPv4 et IPv6.

Fonctions et opérateurs mathématiques

NomType de retourRôle
abs(numeric n)nombre entierRenvoie la valeur absolue de n.
round(numeric n, [s])numericArrondit n à s décimales.
mod(numeric x, numeric y)nombre entierRenvoie le reste de x / y.
floor(numeric n)numericRenvoie l’entier le plus proche inférieur ou égal à n.
ceil(numeric n)numericRenvoie l’entier le plus proche supérieur ou égal à n.
power(numeric n, numeric s)numericÉlève n à la puissance s.
ln(numeric n)numericCalcule le logarithme naturel de n.
log(numeric n)numericCalcule le logarithme en base 10 de n.
log2(numeric n)numericCalcule le logarithme en base 2 de n.
exp(numeric n)numericRenvoie la constante mathématique e élevée à la puissance n.
sqrt(numeric n)numericCalcule la racine carrée de n.

Fonctions et opérateurs de tableaux

NomType de retourRôle
array_length(array a)nombre entierRenvoie la longueur du tableau a pour chaque ligne.
array_contains(array a, expr e)booléenRenvoie true si la valeur évaluée par l’expression e est présente dans le tableau a pour chaque ligne.
array_cat(array a, array b)tableauRenvoie un nouveau tableau contenant les éléments combinés des tableaux a et b.
array_append(array a, expr e)tableauRenvoie un nouveau tableau incluant tous les éléments d’origine du tableau d’entrée, suivis de l’élément ajouté.
string_to_array(text s, delimiter, [,nullString])tableauRenvoie un tableau de sous-chaînes obtenu en découpant la chaîne d’entrée s à l’aide du délimiteur spécifié. Le troisième argument, nullString, est facultatif et spécifie les sous-chaînes remplacées par NULL.
array_to_string(array a, delimiter, [,nullString])chaîneConcatène les éléments du tableau en utilisant le délimiteur fourni et la chaîne null facultative.
unnest(array a)variableRenvoie chaque élément du tableau sous forme de ligne distincte. Le type de retour est le type d’élément du tableau.
unnest ne peut être utilisé que dans la clause SELECT d’une requête. Si d’autres colonnes sont sélectionnées avec unnest, la valeur de chaque ligne de la table est répétée à chaque ligne de sortie pour chaque élément déroulé. Si plusieurs colonnes sont déroulées, toutes les colonnes déroulées sont zippées ensemble, avec NULL remplissant les valeurs de sortie pour les tableaux plus courts.

Fonctions et opérateurs de date/heure

NomType de retourRôle
date_trunc(string precision, timestamp t)timestampTronque le timestamp à la précision choisie (« second », « minute », « hour », « day », « week », « month » ou « year »).
date_diff(string precision, timestamp t, timestamp t)nombre entierRenvoie la différence entre deux dates, dans la précision spécifiée.
to_timestamp(numeric n)timestampTransforme n en timestamp, en considérant n comme le temps en secondes.

Expressions conditionnelles

NomType de retourRôle
coalesce(expr x, y, …)variableRenvoie la première expression non nulle.
nullif(expr x, expr y)variableRenvoie NULL si les deux arguments sont égaux. Sinon, renvoie x.

Fonctions et opérateurs JSON

NomType de retourRôle
json_extract_path_text(text json, text path…)texteExtrait le sous-objet JSON sous forme de texte, défini par le chemin. Son comportement est équivalent à la fonction Postgres du même nom. Par exemple, json_extract_path_text(col, 'forest') renvoie la valeur de la clé forest pour chaque objet JSON dans col. Consultez l’exemple ci-dessous pour la syntaxe des tableaux JSON.
json_extract_path(text json, text path…)jsonMême fonctionnalité que json_extract_path_text, mais renvoie une colonne de type JSON au lieu du type texte.
json_build_object(key1 text, value1 json/text/int/float, key2 text, value2 json/text/int/float, … )jsonConstruit un objet JSON à partir des paramètres fournis. Les paramètres de la fonction sont les clés et valeurs de l’objet JSON à construire, en alternant clé et valeur associée à chaque clé.
row_to_json(table)jsonRenvoie une représentation JSON de chaque ligne d’une table sous forme de valeur JSON. Les clés JSON sont les noms des colonnes, et les valeurs sont les valeurs de chaque ligne pour chaque colonne.

Remarque : row_to_json prend en entrée un nom de table, et NON une colonne. Par exemple : SELECT row_to_json(<table>) FROM <table>.

Tableau JSON

Renvoyer la valeur de la clé forest dans le 0ème élément d’un tableau JSON pour chaque objet JSON ou ligne dans col.

[{
"forest": "trees"
}]
json_extract_path_text(col, ‘0', ‘forest')