Exemples AVG
SELECT
dept_no,
AVG(salary)
FROM employee
GROUP BY dept_no
AVGSELECT
dept_no,
AVG(salary)
FROM employee
GROUP BY dept_no
COUNT()DSQL
COUNT([ALL | DISTINCT] <expr> | *)
| Paramètre | Description |
|---|---|
expr |
Expression : peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées comme expression. |
BIGINT
La fonction COUNT renvoie le nombre de valeurs dans le groupe qui ne sont pas NULL.
La valeur par défaut est ALL : la fonction compte simplement toutes les valeurs de l’ensemble qui ne sont pas NULL.
Si DISTINCT est spécifié, les doublons sont exclus de l’ensemble compté.
Si COUNT (*) est spécifié à la place de expr, toutes les entrées seront comptées.
ne peut pas être utilisé avec le mot-clé DISTINCT.
Les entrées dupliquées ne sont pas exclues
les enregistrements contenant NULL sont comptés
Pour un échantillon de données vide ou si l’échantillon ne contient que des valeurs contenant NULL, la fonction retournera 0.
COUNTSELECT
dept_no,
COUNT(*) AS cnt,
COUNT(DISTINCT name) AS cnt_name
FROM employee
GROUP BY dept_no
LIST()DSQL
LIST([ALL | DISTINCT] <expr> [, separator])
| Paramètre | Description |
|---|---|
expr |
Expression : peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données chaîne ou |
separator |
Separator : Une expression de type chaîne de caractères. Le séparateur par défaut est une virgule. |
BLOB
La fonction LIST renvoie une chaîne de caractères composée des valeurs des arguments autres que NULL dans le groupe,séparés par une virgule ou un délimiteur défini par l’utilisateur.S’il n’y a pas d’autres valeurs que NULL (y compris le cas où le groupe est vide), NULL est retourné.
ALL (par défaut) permet de traiter toutes les valeurs autres que NULL.Si le mot-clé DISTINCT est spécifié, les doublons sont supprimés sauf si expr est BLOB.
L’argument facultatif separator peut être une expression de type chaîne.Cela vous permet de spécifier, par exemple, ascii_char (13) comme séparateur.
Les arguments expr et separator prennent en charge les BLOB de toute taille et de tout jeu de caractères.
Les arguments numériques et de date/heure sont implicitement convertis en chaînes de caractères avant la fusion.
Le résultat de la fonction est un BLOB textuel, sauf si expr est un BLOB d’un sous-type différent.
L’ordre des valeurs dans la liste n’est pas défini — l’ordre dans lequel les lignes sont jointes est déterminé par l’ordre de lecture de l’ensemble de données original.Pour les tableaux, cet ordre n’est normalement pas défini.Si l’ordre est important, les données brutes peuvent être pré-triées à l’aide d’un dérivateur de tableau ou d’un outil similaire.
LISTObtention d’une liste, ordre indéfini.
SELECT LIST (display_name, '; ')
FROM GR_WORK;
Obtenez une liste par ordre alphabétique.
SELECT LIST (display_name, '; ')
FROM (SELECT display_name
FROM GR_WORK
ORDER BY display_name);
MAX()DSQL
MAX([ALL | DISTINCT] <expr>)
| Paramètre | Description |
|---|---|
expr |
Expression : peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées comme expression. |
est le même que l’argument de la fonction expr.
La fonction MAX renvoie l’élément d’échantillonnage maximum qui n’est pas égal à NULL.
Si le groupe est vide ou ne contient que des NULL, le résultat sera NULL.
Si l’argument d’entrée est une chaîne, la fonction renverra la dernière valeur du tri en utilisant le COLLATE approprié.
Cette fonction prend entièrement en charge les `BLOBs' textuels de toute taille et de tout jeu de caractères.
|
Note
|
Le paramètre |
MAXMAXSELECT
dept_no,
MAX(salary)
FROM employee
GROUP BY dept_no
MIN()DSQL
MIN([ALL | DISTINCT] <expr>)
| Paramètre | Description |
|---|---|
expr |
Expression : peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées comme expression. |
est le même que l’argument de la fonction expr.
La fonction MIN renvoie l’élément d’échantillonnage minimum qui n’est pas égal à NULL.
Si le groupe est vide ou ne contient que des NULL, le résultat sera NULL. Si l’argument d’entrée est une chaîne de caractères, la fonction retournera la valeur qui est la première dans le tri en utilisant le COLLATE approprié.
|
Note
|
Le paramètre |
MINMINSELECT
dept_no,
MIN(salary)
FROM employee
GROUP BY dept_no
SUM()DSQL
SUM([ALL | DISTINCT] <expr>)
| Paramètre | Description |
|---|---|
expr |
Expression : peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION, DECFLOAT ou un entier scalable (INTEGER, BIGINT ou INT128) selon le type d’argument de la fonction expr.Normalement, si possible, on choisit un type dont la capacité est supérieure à celle du type d’expression expr.
La fonction SUM renvoie la somme des éléments de l’échantillon qui ne sont pas égaux à NULL.
ALL est l’option par défaut — toutes les valeurs de l’échantillon qui ne contiennent pas NULL sont traitées.Si DISTINCT est spécifié, les doublons sont retirés de l’échantillon et la somme est ensuite effectuée.
Pour un échantillon vide, ou un échantillon ne contenant que NULL, la fonction retournera NULL.
SUMSELECT
dept_no,
SUM(salary)
FROM employee
GROUP BY dept_no
Les fonctions statistiques sont des fonctions d’agrégation. Ces fonctions ne considèrent pas les valeurs NULL. Les paramètres ALL et DISTINCT ne s’appliquent pas à l’argument d’une fonction statistique.
Les fonctions statistiques sont souvent utilisées en conjonction avec la suggestion GROUP BY.
CORR()DSQL
CORR(<expr1>, <expr2>)
| Paramètre | Description |
|---|---|
expr1, expr2 |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION
La fonction CORR renvoie le coefficient de corrélation pour une paire d’expressions renvoyant des valeurs numériques.
La fonction CORR(<expr1>, <expr2>) est équivalente à
COVAR_POP(<expr1>, <expr2>) / (STDDEV_POP(<expr2>) * STDDEV_POP(<expr1>))
En termes statistiques, la corrélation est le degré de relation entre les variables. La corrélation entre les variables signifie que la valeur d’une variable peut être prédite dans une certaine mesure par la valeur de l’autre. Le coefficient de corrélation représente le degré de corrélation sous la forme d’un nombre compris entre -1 (corrélation inverse élevée) et 1 (corrélation élevée). Une valeur de 0 correspond à une absence de corrélation.
Si l’échantillon d’enregistrement est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.
CORRSELECT
CORR(alength, aheight) AS c_corr
FROM measure
[fblangref-aggfuncs-covar-pop], [fblangref-aggfuncs-stddev-pop].
COVAR_POP()DSQL
COVAR_POP(<expr1>, <expr2>)
| Paramètre | Description |
|---|---|
expr1, expr2 |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION
La fonction COVAR_POP retourne la covariance de population de paires d’expressions avec des valeurs numériques.
La fonction COVAR_POP(<expr1>, <expr2>) est équivalente à
(SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / COUNT(*)
Si la sélection d’enregistrements est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.
COVAR_POPCOVAR_POPSELECT
COVAR_POP(alength, aheight) AS c_corr
FROM measure
COVAR_SAMP()DSQL
COVAR_SAMP(<expr1>, <expr2>)
| Paramètre | Description |
|---|---|
expr1, expr2 |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION
La fonction COVAR_SAMP retourne la covariance d’échantillon d’une paire d’expressions avec des valeurs numériques.
La fonction COVAR_SAMP(<expr1>, <expr2>) est équivalente à
(SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / (COUNT(*) - 1)
Si la sélection d’enregistrements est vide, ne contient qu’un seul enregistrement ou ne contient que des valeurs NULL, le résultat contiendra NULL.
COVAR_SAMPCOVAR_SAMPSELECT
COVAR_SAMP(alength, aheight) AS c_corr
FROM measure
STDDEV_POP()DSQL
STDDEV_POP(<expr>)
| Paramètre | Description |
|---|---|
expr |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION ou NUMERIC selon le type expr.
La fonction STDDEV_POP retourne l’écart-type du groupe. Les valeurs NULL sont ignorées.
La fonction STDDEV_POP(<expr>) est équivalente à
SQRT(VAR_POP(<expr>))
Si la sélection d’enregistrements est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.
STDDEV_POPSTDDEV_POPSELECT
dept_no,
STDDEV_POP(salary)
FROM employee
GROUP BY dept_no
[fblangref-aggfuncs-stddev-pop], [fblangref-aggfuncs-var-pop].
STDDEV_SAMP()DSQL
STDDEV_SAMP(<expr>)
| Paramètre | Description |
|---|---|
expr |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION ou NUMERIC selon le type expr.
La fonction STDDEV_SAMP renvoie l’écart-type du groupe. Les valeurs NULL sont ignorées.
La fonction STDDEV_SAMP(<expr>) est équivalente à
SQRT(VAR_SAMP(<expr>))
Si la sélection d’enregistrements est vide, ne contient qu’un seul enregistrement ou ne contient que des valeurs NULL, le résultat contiendra NULL.
STDDEV_SAMPSTDDEV_SAMPSELECT
dept_no,
STDDEV_SAMP(salary)
FROM employee
GROUP BY dept_no
[fblangref-aggfuncs-stddev-pop], [fblangref-aggfuncs-var-samp].
VAR_POP()DSQL
VAR_POP(<expr>)
| Paramètre | Description |
|---|---|
expr |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION ou NUMERIC selon le type expr.
La fonction VAR_POP renvoie la variance échantillonnée pour le groupe. Les valeurs NULL sont ignorées.
La fonction VAR_POP(<expr>) est équivalente à
(SUM(<expr> * <expr>) - SUM(<expr>) * SUM(<expr>) / COUNT(<expr>)) / COUNT(<expr>)
Si la sélection d’enregistrements est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.
VAR_POPVAR_POPSELECT
dept_no,
VAR_POP(salary)
FROM employee
GROUP BY dept_no
VAR_SAMP()DSQL
VAR_SAMP(<expr>)
| Paramètre | Description |
|---|---|
expr |
Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression. |
DOUBLE PRECISION ou NUMERIC selon le type expr.
La fonction VAR_SAMP renvoie la variance d’échantillonnage non biaisée pour le groupe. Les valeurs NULL sont ignorées.
La fonction VAR_SAMP(<expr>) est équivalente à
(SUM(<expr> * <expr>) - SUM(<expr>) * SUM(<expr>) / COUNT(<expr>)) / (COUNT(<expr>) - 1)
Si la sélection d’enregistrements est vide, ne contient qu’un seul enregistrement ou ne contient que des valeurs NULL, le résultat contiendra NULL.
VAR_SAMPVAR_SAMPSELECT
dept_no,
VAR_SAMP(salary)
FROM employee
GROUP BY dept_no
Les fonctions de régression linéaire sont utiles pour poursuivre une ligne de tendance. Une ligne de tendance est généralement un modèle qui est suivi par un ensemble de valeurs. Une ligne de tendance est utile pour prédire les valeurs futures, ce qui signifie que la tendance se poursuivra dans le futur. Pour poursuivre une ligne de tendance, la pente et le point d’intersection avec l’axe Y doivent être connus. L’ensemble des fonctions linéaires comprend des fonctions permettant de calculer ces valeurs.
Dans la syntaxe de la fonction, u est interprété comme une variable dépendant de x.
REGR_AVGX()DSQL
REGR_AVGX ( <y>, <x> )
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
La fonction REGR_AVGX calcule la moyenne de la ligne de régression de la variable indépendante.
La fonction REGR_AVGX(<y>, <x>) est équivalente à
SUM(<exprX>) / REGR_COUNT(<y>, <x>) <exprX> ::= CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END
[fblangref-aggfuncs-regr-count], [fblangref-aggfuncs-regr-avgy].
REGR_AVGY()DSQL
REGR_AVGY(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
La fonction REGR_AVGY calcule la moyenne de la variable dépendante de la ligne de régression.
La fonction REGR_AVGY(<y>, <x>) est équivalente à
SUM(<exprY>) / REGR_COUNT(<y>, <x>) <exprY> ::= CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <y> END
[fblangref-aggfuncs-regr-count], [fblangref-aggfuncs-regr-avgx].
REGR_COUNT()DSQL
REGR_COUNT(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
BIGINT
La fonction REGR_COUNT renvoie le nombre de paires non vides utilisées pour créer la ligne de régression.
La fonction REGR_COUNT(<y>, <x>) est équivalente à
SUM(CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN 1 END)
Voir aussi :[fblangref-aggfuncs-sum]
REGR_INTERCEPT()DSQL
REGR_INTERCEPT(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable indépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées en tant qu’expression ne sont pas autorisées. |
DOUBLE PRECISION
La fonction REGR_INTERCEPT calcule le point d’intersection de la ligne de régression avec l’axe des ordonnées.
La fonction REGR_INTERCEPT(<y>, <x>) est équivalente à
REGR_AVGY(<y>, <x>) - REGR_SLOPE(<y>, <x>) * REGR_AVGX(<y>, <x>)
REGR_INTERCEPTWITH RECURSIVE years(byyear) AS (
SELECT 1991 FROM rdb$database UNION ALL
SELECT byyear+1 FROM years WHERE byyear < 2020
),
s AS (
SELECT EXTRACT(YEAR FROM order_date) AS byyear,
SUM(total_value) AS total_value
FROM sales GROUP BY 1
),
regr AS (
SELECT REGR_INTERCEPT(total_value, byyear) as intercept,
REGR_SLOPE(total_value, byyear) as slope
FROM s)
SELECT years.byyear AS byyear,
intercept + (slope * years.byyear) AS total_value
FROM years CROSS JOIN regr
BYYEAR TOTAL_VALUE ---------------------------- 1991 118377,35 1992 414557,62 1993 710737,89 1994 1006918,16 1995 1303098,43 1996 1599278,69 1997 1895458,96 1998 2191639,23 1999 2487819,50 2000 2783999,77 ...
REGR_R2()DSQL
REGR_R2(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
La fonction REGR_R2 calcule le coefficient de détermination, ou R-carré, de la ligne de régression.
La fonction REGR_R2(<y>, <x>) est équivalente à
POWER(CORR(<y>, <x>), 2)
REGR_SLOPE()DSQL
REGR_SLOPE(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
La fonction REGR_SLOPE calcule la pente de la ligne de régression.
La fonction REGR_SLOPE(<y>, <x>) est équivalente à
COVAR_POP(<y>, <x>) / VAR_POP(<exprX>) <exprX> :== CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END
[fblangref-aggfuncs-covar-pop], [fblangref-aggfuncs-var-pop].
REGR_SXX()DSQL
REGR_SXX(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
Statistique de diagnostic utilisée pour l’analyse de régression.
La fonction REGR_SXX(<y>, <x>) est calculée comme suit :
REGR_COUNT(<y>, <x>) * VAR_POP(<exprX>) <exprX> :== CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END
[fblangref-aggfuncs-regr-count], [fblangref-aggfuncs-var-pop].
REGR_SXY()DSQL
REGR_SXY(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
Statistique de diagnostic utilisée pour l’analyse de régression.
La fonction REGR_SXY(<y>, <x>) est calculée comme suit :
REGR_COUNT(<y>, <x>) * COVAR_POP(<y>, <x>)
[fblangref-aggfuncs-regr-count], [fblangref-aggfuncs-covar-pop].
REGR_SYY()DSQL
REGR_SYY(<y>, <x>)
| Paramètre | Description |
|---|---|
y |
Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
x |
Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression. |
DOUBLE PRECISION
La statistique de diagnostic utilisée pour l’analyse de régression.
La fonction REGR_SYY(<y>, <x>) est calculée comme suit :
REGR_COUNT(<y>, <x>) * VAR_POP(<exprY>) <exprY> :== CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <y> END
[fblangref-aggfuncs-regr-count], [fblangref-aggfuncs-var-pop].