Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctions d'agrégation

Dernière mise à jour :Aug 18, 2026

Une fonction d'agrégation calcule une valeur unique à partir d'un ensemble de valeurs. Cette rubrique décrit la syntaxe de base des fonctions d'agrégation et fournit des exemples d'utilisation.

Simple Log Service prend en charge les fonctions d'agrégation suivantes.

Important

Si vous souhaitez utiliser des chaînes de caractères dans les instructions d'analyse, vous devez les entourer de guillemets simples (''). Les chaînes non entourées de guillemets ou entourées de guillemets doubles ("") indiquent des noms de champ ou de colonne. Par exemple,

'status'

indique la chaîne de caractères « status », tandis que

status

ou

"status"

indique le champ de journal « status ».

Paramètre

Syntaxe

Description

Prise en charge SQL

Prise en charge SPL

fonction arbitrary

arbitrary(x)

Renvoie une valeur non NULL arbitraire issue de x.

×

fonction avg

avg(x)

Calcule la moyenne arithmétique de x.

×

fonction bitwise_and_agg

bitwise_and_agg(x)

Renvoie le résultat de l'opération ET binaire (bitwise AND) appliquée à toutes les valeurs de x.

×

fonction bitwise_or_agg

bitwise_or_agg(x)

Renvoie le résultat de l'opération OU binaire (bitwise OR) appliquée à toutes les valeurs de x.

×

fonction bool_and

bool_and(expression booléenne)

Renvoie true si tous les journaux satisfont à la condition.

La fonction bool_and est équivalente à la fonction every.

×

fonction bool_or

bool_or(expression booléenne)

Renvoie true si au moins un journal satisfait à la condition.

×

fonction checksum

checksum(x)

Calcule la somme de contrôle (checksum) de x.

×

fonction count

count(*)

Renvoie le nombre total de journaux.

×

count(1)

Renvoie le nombre total de journaux, ce qui équivaut à count(*).

×

count(x)

Renvoie le nombre de journaux pour lesquels la valeur de x n'est pas NULL.

×

fonction count_if

count_if(expression booléenne)

Renvoie le nombre de journaux qui satisfont à la condition spécifiée.

×

fonction every

every(expression booléenne)

Renvoie true si tous les journaux satisfont à la condition.

La fonction every est équivalente à la fonction bool_and.

×

fonction geometric_mean

geometric_mean(x)

Calcule la moyenne géométrique de x.

×

fonction kurtosis

kurtosis(x)

Calcule le coefficient d'aplatissement (kurtosis) de x.

×

fonction map_union

map_union(x)

Renvoie l'union des maps présentes dans une colonne. Si une clé existe dans plusieurs maps, une valeur arbitraire correspondant à cette clé est sélectionnée.

×

fonction max

max(x)

Renvoie la valeur maximale contenue dans x.

×

max(x, n)

Renvoie sous forme de tableau les n plus grandes valeurs contenues dans x.

×

fonction max_by

max_by(x, y)

Renvoie la valeur de x associée à la valeur maximale de y.

×

max_by(x, y, n)

Renvoie un tableau contenant les valeurs de x correspondant aux n plus grandes valeurs de y.

×

fonction min

min(x)

Renvoie la valeur minimale contenue dans x.

×

min(x, n)

Renvoie sous forme de tableau les n plus petites valeurs contenues dans x.

×

fonction min_by

min_by(x, y)

Renvoie la valeur de x associée à la valeur minimale de y.

×

min_by(x, y, n)

Renvoie un tableau contenant les valeurs de x correspondant aux n plus petites valeurs de y.

×

fonction skewness

skewness(x)

Calcule le coefficient d'asymétrie (skewness) de x.

×

fonction sum

sum(x)

Calcule la somme des valeurs de x.

×

Fonction arbitrary

La fonction arbitrary renvoie une valeur non NULL arbitraire extraite de l'expression x.

Syntaxe

arbitrary(x)

Paramètres

Paramètre

Description

x

Expression de n'importe quel type de données.

Type de retour

Correspond au type de données de l'expression d'entrée.

Exemple

Renvoie une valeur non NULL arbitraire issue du champ request_method.

  • Instruction de requête (Déboguer)

    * | SELECT
      arbitrary(request_method) AS request_method
  • La colonne request_method renvoie une valeur telle que GET.

Fonction avg

La fonction avg renvoie la moyenne des valeurs contenues dans x.

Syntaxe

avg(x)

Paramètres

Paramètre

Description

x

Colonne ou expression dont il faut calculer la moyenne. Les valeurs doivent être de type double, bigint, decimal ou real.

Type de valeur de retour

Valeur de type double.

Exemples

Renvoie les projets dont la latence moyenne est supérieure à 1 000 microsecondes.

  • Instruction de requête (Déboguer)

    method: PostLogstoreLogs | SELECT
      avg(latency) AS avg_latency,
      Project
    GROUP BY
      Project
    HAVING
      avg_latency > 1000
  • La requête renvoie un enregistrement avec une valeur avg_latency de 3223.4162679425835 et un nom de Project commençant par datalab-14.

Fonction bitwise_and_agg

La fonction bitwise_and_agg renvoie le résultat de l'opération ET binaire (bitwise AND) appliquée à toutes les valeurs de x.

Syntaxe

bitwise_and_agg(x)

Paramètres

Paramètre

Description

x

Valeur de type bigint.

Type de valeur de retour

Valeur de type bigint.

Exemples

Effectue une opération ET binaire sur toutes les valeurs du champ status.

  • Instruction de requête (Déboguer)

    * | SELECT
      bitwise_and_agg(status)
  • La requête renvoie une seule colonne nommée _col0 avec la valeur 0.

Fonction bitwise_or_agg

La fonction bitwise_or_agg renvoie le résultat de l'opération OU binaire (bitwise OR) appliquée à toutes les valeurs de x.

Syntaxe

bitwise_or_agg(x)

Paramètres

Paramètre

Description

x

Valeur de type bigint.

Type de retour

Valeur de type bigint.

Exemple

Effectuez une opération OU binaire sur toutes les valeurs du champ request_time.

  • Instruction de requête et d'analyse (Déboguer)

    * | SELECT
      bitwise_or_agg(request_length)
  • Les résultats de la requête et de l'analyse sont renvoyés dans une seule colonne _col0, avec la valeur 16383.

Fonction bool_and

La fonction bool_and renvoie true si une expression booléenne est évaluée à true pour tous les journaux. Cette fonction est équivalente à la fonction every.

Syntaxe

bool_and(boolean expression)

Paramètres

Paramètre

Description

expression booléenne

Expression booléenne à évaluer.

Type de valeur de retour

booléen

Exemple

Cet exemple vérifie si la valeur request_time de tous les journaux est inférieure à 100.

  • Instruction de requête et d'analyse (Déboguer)

    * | SELECT
      bool_and(request_time < 100)
  • Le résultat de la requête et de l'analyse est true, ce qui indique que la valeur request_time de tous les journaux est inférieure à 100.

Fonction bool_or

La fonction bool_or renvoie true si une expression booléenne est évaluée à true pour au moins un journal.

Syntaxe

bool_or(boolean expression)

Paramètres

Paramètre

Description

expression booléenne

Expression booléenne.

Type de valeur de retour

booléen

Exemples

Pour vérifier si la valeur request_time d'un journal quelconque est inférieure à 20 :

  • Instruction de requête et d'analyse (Déboguer)

    * | SELECT
      bool_or(request_time < 20)
  • Les résultats de la requête et de l'analyse renvoient la valeur true pour la colonne _col0, ce qui indique que le journal contient un enregistrement dont la valeur request_time est inférieure à 20.

Fonction checksum

La fonction checksum calcule la somme de contrôle (checksum) de x.

Syntaxe

checksum(x)

Paramètres

Paramètre

Description

x

Expression de n'importe quel type de données.

Type de valeur de retour

Chaîne encodée en Base64.

Exemple

  • Instruction de requête (Déboguer)

    * | SELECT
      checksum(request_method) AS request_method
  • La somme de contrôle du champ request_method est NDXFdgnd8GE=.

Fonction count

La fonction count permet de compter les journaux.

Syntaxe

  • Compte le nombre total de journaux.

    count(*)
  • Renvoie le nombre total de journaux. Cette syntaxe est équivalente à count(*).

    count(1)
  • Compte les journaux pour lesquels x n'est pas NULL.

    count(x)

Paramètres

Paramètre

Description

x

Une expression de n'importe quel type de données.

Type de valeur renvoyée

Un entier.

Exemples

  • Exemple 1 : comptez les pages vues d'un site web.

    • Instruction de requête (Déboguer)

      * | SELECT
        count(*) AS PV
    • Résultats de la requête et de l'analyse : le tableau des résultats contient une colonne PV avec la valeur 2009.

  • Exemple 2 : comptez les journaux dont le champ request_method n'est pas nul.

    • Instruction de requête (Déboguer)

      * | SELECT
        count(request_method) AS count
    • Résultats de la requête et de l'analyse : le tableau des résultats contient une colonne count avec la valeur 1954.

Fonction count_if

La fonction count_if compte les journaux qui satisfont une condition spécifiée.

Syntaxe

count_if(boolean expression)

Paramètres

Paramètre

Description

boolean expression

Condition à évaluer.

Type de retour

Nombre de journaux satisfaisant la condition.

Exemple

Comptez le nombre d'entrées de journal dont la valeur du champ request_uri se termine par file-0.

  • Instruction de requête et d'analyse (déboguer)

    * | SELECT
      count_if(request_uri like '%file-0') AS count
  • Résultats de la requête et de l'analyse

Fonction geometric_mean

La fonction geometric_mean calcule la moyenne géométrique de x.

Syntaxe

geometric_mean(x)

Paramètres

Paramètre

Description

x

Valeur de type double, bigint ou real.

Type de valeur renvoyée

Renvoie une valeur double.

Exemple

Calculez la moyenne géométrique du temps de requête.

  • Instruction de requête et d'analyse (Déboguer)

    * | SELECT
      geometric_mean(request_time) AS time
  • Les résultats de la requête et de l'analyse affichent une colonne time avec la valeur 39.443123208882308.

Fonction every

La fonction every renvoie true si une expression booléenne est évaluée comme vraie pour tous les journaux. Cette fonction est équivalente à la fonction bool_and.

Syntaxe

every(boolean expression)

Paramètres

Paramètre

Description

boolean expression

Expression qui renvoie une valeur booléenne pour chaque journal.

Type de valeur renvoyée

Renvoie une valeur booléenne.

Exemple

Cet exemple vérifie si la valeur request_time de chaque journal est inférieure à 100.

  • Instruction de requête et d'analyse (Déboguer)

    * | SELECT
      every(request_time < 100)
  • Résultats de la requête et de l'analyse

Fonction kurtosis

Calcule l'aplatissement (kurtosis) de x.

Syntaxe

kurtosis(x)

Paramètres

Paramètre

Description

x

La valeur doit être de type double ou bigint.

Type de retour

double

Exemple

Calcule l'aplatissement du champ request_time.

  • Instruction de requête (Déboguer)

    *| SELECT
      kurtosis(request_time)
  • Résultats de la requête et de l'analyse

    kurtosis
    -3.0006998250171186

Fonction map_union

La fonction map_union renvoie l'union de toutes les cartes (maps) d'une colonne. Si la même clé existe dans plusieurs cartes d'entrée, la valeur associée à cette clé dans la carte résultante est choisie de manière non déterministe parmi l'une des entrées.

Syntaxe

map_union(x)

Paramètres

Paramètre

Description

x

Colonne de type map.

Type de valeur renvoyée

Renvoie une seule valeur de type map.

Exemple

Cet exemple agrège les valeurs de carte du champ etl_context en une seule carte.

  • Exemple de champ

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Instruction de requête

    * | SELECT
      map_union(
        try_cast(json_parse(etl_context) AS map(varchar, varchar))
      )
  • Résultats de la requête et de l'analyse : après exécution de l'instruction de requête, la colonne de résultat est nommée _col0 et sa valeur est une carte de paires clé-valeur analysées à partir de etl_context, contenant des champs tels que consumer_group, shard_id, project, logstore et consumer, ainsi que leurs valeurs correspondantes.

Fonction max

La fonction max renvoie la valeur maximale de x.

Syntaxe

  • Renvoie la valeur maximale de x.

    max(x)
  • Renvoie un tableau des n plus grandes valeurs de x.

    max(x, n)

Paramètres

Paramètre

Description

x

N'importe quelle expression.

n

Entier positif.

Type de valeur renvoyée

Même type de données que l'expression d'entrée.

Exemples

  • Exemple 1 : trouvez le temps de requête maximal.

    • Instruction de requête (Déboguer)

      * | SELECT
        max(request_time) AS max_request_time
    • Résultats de la requête et de l'analyse : la valeur de max_request_time est 80.0.

  • Exemple 2 : trouvez les 10 temps de requête les plus élevés.

    • Instruction de requête (Déboguer)

      * | SELECT
        max(request_time, 10) AS "top 10"
    • Résultats de la requête et de l'analyse : la requête renvoie [80.0,80.0,80.0,80.0,80.0,79.0,79.0,79.0,78.0,78.0] pour la colonne top 10. Le tableau contient les 10 plus grandes valeurs de request_time classées par ordre décroissant.

Fonction max_by

La fonction max_by prend en charge les deux syntaxes suivantes.

Syntaxe

  • Renvoie la valeur de x correspondant à la valeur maximale de y.

    max_by(x, y)
  • Renvoie un tableau de valeurs x correspondant aux n plus grandes valeurs de y.

    max_by(x, y, n)

Paramètres

Paramètre

Description

x

Expression de n'importe quel type de données.

y

Expression de n'importe quel type de données.

n

Entier positif.

Type de valeur renvoyée

Identique au type de données de x.

Exemples

  • Exemple 1 : trouvez l'heure de la commande présentant le montant hors taxe le plus élevé.

    • Instruction de requête et d'analyse

      * | SELECT
        max_by(UsageEndTime, PretaxAmount) AS time
    • Résultats de la requête et de l'analyse : la colonne time renvoie 1625731025.

  • Exemple 2 : trouvez les méthodes de requête pour les trois requêtes ayant les temps de requête les plus longs.

    • Instruction de requête et d'analyse (déboguer)

      * | SELECT
        max_by(request_method, request_time, 3) AS method
    • Résultats de la requête et de l'analyse : la valeur de method est ["POST","POST","POST"], ce qui indique que les méthodes des trois requêtes les plus récentes triées par request_time sont toutes POST.

Fonction min

La fonction min renvoie la valeur minimale dans x.

Syntaxe

  • Renvoie la valeur minimale dans x.

    min(x)
  • Renvoie les n plus petites valeurs de x sous forme de tableau.

    min(x,n)

Paramètres

Paramètre

Description

x

Expression de n'importe quel type de données.

n

Entier positif.

Type de valeur renvoyée

Identique au type de données de l'expression d'entrée.

Exemples

  • Exemple 1 : trouvez le temps de requête minimal.

    • Instruction de requête et d'analyse (Déboguer)

      * | SELECT
        min(request_time) AS min_request_time
    • Les résultats de la requête et de l'analyse renvoient une colonne nommée min_request_time avec la valeur 10.0.

  • Exemple 2 : trouvez les 10 temps de requête les plus petits.

    • Instruction de requête et d'analyse (Déboguer)

      * | SELECT
        min(request_time, 10)
    • Les résultats de la requête et de l'analyse renvoient une colonne nommée _col0 avec la valeur [10.0,10.0,10.0,10.0,10.0,11.0,12.0,12.0,13.0,13.0].

Fonction min_by

La fonction min_by dispose des deux syntaxes suivantes.

Syntaxe

  • Renvoie la valeur de x correspondant à la valeur minimale de y.

    min_by(x, y)
  • Renvoie un tableau de valeurs x correspondant aux n plus petites valeurs de y.

    min_by(x, y, n)

Paramètres

Paramètre

Description

x

Expression de n'importe quel type de données.

y

Expression de n'importe quel type de données.

n

Entier positif.

Type de valeur renvoyée

Même type de données que le paramètre x.

Exemples

  • Exemple 1 : trouvez la méthode de requête pour la requête ayant le temps de requête minimal.

    • Instruction de requête et d'analyse (Déboguer)

      * | SELECT
        min_by(request_method, request_time) AS method
    • Résultats de la requête et de l'analyse : la colonne method renvoie GET.

  • Exemple 2 : trouvez les méthodes de requête pour les trois requêtes ayant les temps de requête les plus courts.

    • Instruction de requête et d'analyse (Déboguer)

      * | SELECT
        min_by(request_method, request_time, 3) AS method
    • Résultats de la requête et de l'analyse.

Fonction skewness

La fonction skewness calcule l'asymétrie de l'expression x.

Syntaxe

skewness(x)

Paramètres

Paramètre

Description

x

Expression évaluée comme un type double ou bigint.

Type de valeur renvoyée

double

Exemple

Calculez l'asymétrie des valeurs du champ request_time.

  • Instruction de requête et d'analyse (Déboguer)

    *| SELECT
      skewness(request_time) AS skewness
  • Résultats de la requête et de l'analyse : la valeur skewness est 0.00042944441602043965.

Fonction sum

La fonction sum additionne les valeurs de l'expression x.

Syntaxe

sum(x)

Paramètres

Paramètre

Description

x

Expression évaluée comme un type double, bigint, decimal ou real.

Type de valeur renvoyée

Identique au type de données de l'expression d'entrée.

Exemples

Calculez le trafic quotidien d'un site web.

  • Instruction de requête et d'analyse (déboguer)

    * | SELECT
      date_trunc('day', __time__) AS time,
      sum(body_bytes_sent) AS body_bytes_sent
    GROUP BY
      time
    ORDER BY
      time
  • Résultats de la requête et de l'analyse : après exécution de l'instruction de requête et d'analyse, un tableau de résultats statistiques agrégés par jour est renvoyé, contenant la somme de body_bytes_sent pour un total de cinq jours, du 19/09/2023 au 23/09/2023.