---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideAggregate - Dans le champ d'application

# GlideAggregate - Dans le champ d'application {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 14 minutes de lecture

L'API GlideAggregate permet de créer des requêtes d'agrégation de base de données.

La classe GlideAggregate est une extension de la classe GlideRecord et fournit des requêtes d'agrégation de base de données (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN, STDDEV, SUM). Cette fonctionnalité peut être utile lors de la création de rapports personnalisés ou dans les calculs de champs calculés.

Lorsque vous utilisez des méthodes GlideAggregate sur des champs de devise ou de prix, vous travaillez avec la valeur de la devise de référence. Assurez-vous de convertir les valeurs d'agrégat en devise de la session de l'utilisateur pour l'affichage. Étant donné que le taux de conversion entre la devise ou la valeur de prix (valeur affichée) et sa valeur [de devise](https://www.servicenow.com/docs/access?context=currency&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US) de référence (valeur d'agrégation) peut changer, le résultat peut ne pas être celui attendu par l'utilisateur.  
Remarque :  
Lors de l'utilisation d'un système sur site, le fuseau horaire du serveur de base de données doit être défini sur GMT/UTC pour que cette classe fonctionne correctement.

## GlideAggregate inclus dans le périmètre : GlideAggregate(String tableName) {#ariaid-title2}

Crée un objet GlideAggregate sur la table spécifiée.
{#r_ScopedGlideAggregateGlideAggregate_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| tableName | Chaîne | Nom de la table. |
[Tableau 1. Paramètres]

{#r_ScopedGlideAggregateGlideAggregate_String__table_vy2_525_jq}  

    var count = new GlideAggregate('incident');

## GlideAggregate inclus dans le champ d'application : addAggregate(String agg, nom de la chaîne) {#ariaid-title3}

Ajoute un agrégat à une requête de base de données.
{#r_ScopedGlideAggregateAddAggregate_String_String__id_zgs_fl2_4nb__entry__3}{#r_ScopedGlideAggregateAddAggregate_String_String__agg-GlideAgg-row}

| Nom | Type | Description |
|-|-|-|
| Agrégation | Chaîne | Nom d'un agrégat à utiliser. Valeurs valides : * MOY : valeur moyenne de l'expression. * COUNT : nombre de valeurs non nulles. * GROUP_CONCAT : concatène toutes les valeurs non nulles du groupe dans l'ordre croissant, les joint par une virgule (',') et renvoie le résultat sous forme de chaîne. * GROUP_CONCAT_DISTINCT : concatene toutes les valeurs non nulles du groupe dans l'ordre croissant, supprime les doublons, les joint par une virgule (',') et renvoie le résultat sous forme de chaîne. * MAX : valeur la plus grande, ou maximale. * MIN : valeur minimale. * STDDEV : écart-type de la population. * SOMME : somme de toutes les valeurs. |
| nom | Chaîne | Facultatif. Nom du champ sur lequel regrouper les résultats de l'agrégation. Par défaut : null |
[Tableau 2. Paramètres]

{#r_ScopedGlideAggregateAddAggregate_String_String__id_zgs_fl2_4nb} {#r_ScopedGlideAggregateAddAggregate_String_String__table_qpt_3f5_jq1__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 3. Renvoie]

{#r_ScopedGlideAggregateAddAggregate_String_String__table_qpt_3f5_jq1}  
L'exemple suivant montre comment utiliser les fonctions GlideAggregate sur la table Incident \[incident\].

    var incidentGA = new GlideAggregate('incident');
    incidentGA.groupBy('category');
    incidentGA.orderByAggregate('COUNT', 'sys_mod_count');

    incidentGA.addAggregate('AVG', 'sys_mod_count');
    incidentGA.addAggregate('COUNT', 'sys_mod_count');
    incidentGA.addAggregate('GROUP_CONCAT', 'sys_mod_count');
    incidentGA.addAggregate('GROUP_CONCAT_DISTINCT', 'sys_mod_count');
    incidentGA.addAggregate('MAX', 'sys_mod_count');
    incidentGA.addAggregate('MIN', 'sys_mod_count');
    incidentGA.addAggregate('STDDEV', 'sys_mod_count');
    incidentGA.addAggregate('SUM', 'sys_mod_count');

    incidentGA.query();

    while (incidentGA.next()) {
    gs.info('CATEGORY: ' + incidentGA.getValue('category'));
    gs.info('AVG: ' + incidentGA.getAggregate('AVG', 'sys_mod_count'));
    gs.info('COUNT: ' + incidentGA.getAggregate('COUNT', 'sys_mod_count'));
    gs.info('GROUP_CONCAT: ' + incidentGA.getAggregate('GROUP_CONCAT', 'sys_mod_count'));
    gs.info('GROUP_CONCAT_DISTINCT: ' + incidentGA.getAggregate('GROUP_CONCAT_DISTINCT', 'sys_mod_count'));
    gs.info('MAX: ' + incidentGA.getAggregate('MAX', 'sys_mod_count'));
    gs.info('MIN: ' + incidentGA.getAggregate('MIN', 'sys_mod_count'));
    gs.info('STDDEV: ' + incidentGA.getAggregate('STDDEV', 'sys_mod_count'));
    gs.info('SUM: ' + incidentGA.getAggregate('SUM', 'sys_mod_count'));
    gs.info(' ');
    }

Sortie.

    CATEGORY: inquiry
    AVG: 8.42424242424242424242424242424242424242E00
    COUNT: 33
    GROUP_CONCAT: 0,0,0,0,1,2,2,4,4,4,5,5,5,6,6,6,6,6,6,6,6,7,8,8,8,8,9,15,15,19,32,33,36
    GROUP_CONCAT_DISTINCT: 0,1,2,4,5,6,7,8,9,15,19,32,33,36
    MAX: 36
    MIN: 0
    STDDEV: 9.15843294125113629932710147135171494439E00
    SUM: 278
      
    CATEGORY: software
    AVG: 21
    COUNT: 13
    GROUP_CONCAT: 3,4,5,5,6,7,9,10,10,11,14,94,95
    GROUP_CONCAT_DISTINCT: 3,4,5,6,7,9,10,11,14,94,95
    MAX: 95
    MIN: 3
    STDDEV: 3.27693962918655755532970326989852794087E01
    SUM: 273
      
    CATEGORY: Hardware
    AVG: 6.8
    COUNT: 10
    GROUP_CONCAT: 2,5,5,6,6,6,7,7,9,15
    GROUP_CONCAT_DISTINCT: 2,5,6,7,9,15
    MAX: 15
    MIN: 2
    STDDEV: 3.39280283999985933622820108982884699755E00
    SUM: 68
      
    CATEGORY: network
    AVG: 18
    COUNT: 5
    GROUP_CONCAT: 3,12,17,21,37
    GROUP_CONCAT_DISTINCT: 3,12,17,21,37
    MAX: 37
    MIN: 3
    STDDEV: 1.25698050899765347157025586536136512302E01
    SUM: 90
      
    CATEGORY: 
    AVG: 9.5
    COUNT: 4
    GROUP_CONCAT: 8,8,10,12
    GROUP_CONCAT_DISTINCT: 8,10,12
    MAX: 12
    MIN: 8
    STDDEV: 1.91485421551267621995020382273964310607E00
    SUM: 38
      
    CATEGORY: database
    AVG: 29
    COUNT: 2
    GROUP_CONCAT: 8,50
    GROUP_CONCAT_DISTINCT: 8,50
    MAX: 50
    MIN: 8
    STDDEV: 2.969848480983499602483546320840365965E01
    SUM: 58

## GlideAggregate inclus dans le champ d'application : addEncodedQuery(requête de chaîne) {#ariaid-title4}

Ajoute une requête codée aux autres requêtes qui peuvent avoir été définies pour cet agrégat.
{#r_ScopedGlideAggregateAddEncodedQuery_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| requête | Chaîne | Une requête codée à ajouter à l'agrégat. |
[Tableau 4. Paramètres]

{#r_ScopedGlideAggregateAddEncodedQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddEncodedQuery_String__table_qpt_3f5_jq1__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 5. Renvoie]

{#r_ScopedGlideAggregateAddEncodedQuery_String__table_qpt_3f5_jq1}  

    //Number of incidents varies depending on the current state
    //of the incident table
    var count = new GlideAggregate('incident');
    count.addEncodedQuery('active=true');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next())
       incidents = count.getAggregate('COUNT');
    gs.info(incidents);

## GlideAggregate inclus dans le champ d'application : addQuery(nom de chaîne, opérateur de chaîne, valeur de chaîne) {#ariaid-title5}

Ajoute une requête à l'agrégat.
{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Requête à ajouter. |
| opérateur | Chaîne | Opérateur pour la requête. |
| valide | Chaîne | Liste des valeurs à inclure dans la requête. |
[Tableau 6. Paramètres]

{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddQuery_String_String_String__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Condition de la requête. |
[Tableau 7. Renvoie]

{#r_ScopedGlideAggregateAddQuery_String_String_String__table_qpt_3f5_jq}  

    //Number of incidents varies depending on the current state
    //of the incident table
    var count = new GlideAggregate('incident');
    count.addQuery('active', '=','true');
    count.addAggregate('COUNT', 'category');
    count.query();  
    while (count.next()) {
       var category = count.category;
       var categoryCount = count.getAggregate('COUNT', 'category');
       gs.info("There are currently " + categoryCount + " incidents with a category of " + category);
    }

Sortie :

    There are currently 1 incidents with a category of database
    There are currently 5 incidents with a category of hardware
    There are currently 42 incidents with a category of inquiry
    There are currently 4 incidents with a category of network
    There are currently 4 incidents with a category of request
    There are currently 7 incidents with a category of software

## GlideAggregate inclus dans le périmètre : addNotNullQuery(String fieldName) {#ariaid-title6}

Ajoute une requête non nulle à l'agrégat.
{#r_ScopedGlideAggregateAddNotNullQuery_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| Nom de champ | Chaîne | Nom du champ. |
[Tableau 8. Paramètres]

{#r_ScopedGlideAggregateAddNotNullQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddNotNullQuery_String__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Condition de requête incluse dans le champ d'application. |
[Tableau 9. Renvoie]

{#r_ScopedGlideAggregateAddNotNullQuery_String__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
      count.addNotNullQuery('short_description');
      count.query();   // Issue the query to the database to get all records
      while (count.next()) {   
         // add code here to process the aggregate
      }

## GlideAggregate inclus dans le champ d'application : addNullQuery(String fieldName) {#ariaid-title7}

Ajoute une requête nulle à l'agrégat.
{#r_ScopedGlideAggregateAddNullQuery_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Nom du champ. |
[Tableau 10. Paramètres]

{#r_ScopedGlideAggregateAddNullQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddNullQuery_String__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| GlideQueryCondition | Condition de requête incluse dans le champ d'application. |
[Tableau 11. Renvoie]

{#r_ScopedGlideAggregateAddNullQuery_String__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
      count.addNullQuery('short_description');
      count.query();   // Issue the query to the database to get all records
      while (count.next()) {   
         // add code here to process the aggregate
      }

## GlideAggregate inclus dans le périmètre : addTrend(String fieldName, String timeInterval, Number numUnits) {#ariaid-title8}

Ajoute une tendance pour un champ spécifié. Utilisez une tendance pour afficher des modèles sur une période de temps.
Remarque :  
Pour contrôler s'il faut regrouper dayofweek les résultats par année, utilisez [GlideAggregate inclus dans le champ d'application : setIntervalYearIncluded(Boolean b)](https://servicenow-prod.fluidtopics.net/btm5_kHR0FeGrwYJm0pc4A#ScopedGlAgg-setIntervalYearInclu_B "Définit s’il faut regrouper les résultats par année pour les tendances par jour. Ces tendances sont créées à l’aide de la méthode addTrend() avec l’intervalle de dayofweek temps.").
{#r_ScopedGlideAggAddTrend_S_S__table_tlk_cdk_ws__entry__3}

| Nom | Type | Description |
|-|-|-|
| Fieldname | Chaîne | Nom du champ pour lequel la tendance doit se produire. |
| intervalle de temps | Chaîne | Intervalle de temps pour la tendance. Valeurs valides : * date * jour de la semaine * heure * minute * trimestre * valide * semaine * année {#r_ScopedGlideAggAddTrend_S_S__ul_rm5_xqq_gnb} |
| Unités num | Numéro | Facultatif. Valide uniquement quand timeInterval = minute. Nombre de minutes à inclure dans la tendance. Valeur par défaut : 1 |
[Tableau 12. Paramètres]

{#r_ScopedGlideAggAddTrend_S_S__table_tlk_cdk_ws} {#r_ScopedGlideAggAddTrend_S_S__table_frl_fqd_3z__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 13. Renvoie]

{#r_ScopedGlideAggAddTrend_S_S__table_frl_fqd_3z}  

    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT'); // Count all incidents opened each quarter
    ga.addTrend('opened_at', 'quarter');
    ga.query();
    while(ga.next()) {
     gs.info([ga.getValue('timeref'), ga.getAggregate('COUNT')]);
    }

Sortie :

    3/2018, 9
    4/2018, 2
    1/2019, 38
    2/2019, 310

## GlideAggregate inclus dans le champ d'application : getAggregate(String agg, nom de la chaîne) {#ariaid-title9}

Renvoie la valeur d'un agrégat à partir de l'enregistrement actuel.
{#r_ScopedGlideAggregateGetAggregate_String_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| Agrégation | Chaîne | Type de l'agrégat. Valeurs valides : * MOY : valeur moyenne de l'expression. * COUNT : nombre de valeurs non nulles. * GROUP_CONCAT : concatène toutes les valeurs non nulles du groupe dans l'ordre croissant, les joint par une virgule (',') et renvoie le résultat sous forme de chaîne. * GROUP_CONCAT_DISTINCT : concatene toutes les valeurs non nulles du groupe dans l'ordre croissant, supprime les doublons, les joint par une virgule (',') et renvoie le résultat sous forme de chaîne. * MAX : valeur la plus grande, ou maximale. * MIN : valeur minimale. * STDDEV : écart-type de la population. * SOMME : somme de toutes les valeurs. |
| nom | Chaîne | Nom du champ sur lequel effectuer l'agrégation. |
[Tableau 14. Paramètres]

{#r_ScopedGlideAggregateGetAggregate_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGetAggregate_String_String__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Chaîne | Valeur de l'agrégation. Si les valeurs en cours d'agrégation sont des valeurs de devise FX, la valeur renvoyée est au format `<currency_code ; currency_value>`, tels que : USD ; N° 134.980000. Remarque : Si le champ spécifié contient des valeurs de devises FX de types de devises mixtes, la méthode n'est pas en mesure d'agréger les valeurs et renvoie un point-virgule (;). |
[Tableau 15. Renvoie]

{#r_ScopedGlideAggregateGetAggregate_String_String__table_qpt_3f5_jq}  
Affiche une agrégation qui renvoie le nombre d'enregistrements dans la table Incident.

    var count = new GlideAggregate('incident');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next()) {
      incidents = count.getAggregate('COUNT');
    }
    //Number of incidents varies depending on the current state
    //of the incident table
    gs.info('Number of incidents: ' + incidents);

Sortie : Nombre d'incidents : 63.  
Affiche l'agrégation d'un champ Devise FX.

    var ga = new GlideAggregate('laptop_tracker');
    ga.addAggregate('SUM', 'cost');
    ga.groupBy('name');
    ga.query();
    while (ga.next()) {
      gs.info('Aggregate results ' + ga.getValue('name') + ' => ' + ga.getAggregate('SUM', 'cost'));
    }

Sortie :

    *** Script: Aggregate results Apple MacBook Air => USD;1651.784280000000
    *** Script: Aggregate results Apple MacBook Pro => USD;1651.784280000000
    *** Script: Aggregate results Dell XPS => USD;470.852672000000
    *** Script: Aggregate results LG =>
    *** Script: Aggregate results Samsung Galaxy => USD;225.320000000000
    *** Script: Aggregate results Surface3 => USD;2895.560369520000
    *** Script: Aggregate results Toshiba => USD;9385.202875800000

## GlideAggregate inclus dans le périmètre : getAggregateEncodedQuery() {#ariaid-title10}

Obtient la requête nécessaire pour renvoyer l'agrégat actuel.
{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_vy2_535_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 16. Paramètres]

{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Chaîne | Requête codée pour obtenir l'agrégat. |
[Tableau 17. Renvoie]

{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MIN', 'sys_mod_count');
    count.groupBy('category');
    count.query();  
    while (count.next()) {
        gs.info(count.getAggregateEncodedQuery());
    }

Sortie :

    category=database
    category=hardware
    category=inquiry
    category=network
    category=request
    category=software

## GlideAggregate inclus dans le périmètre : getEncodedQuery() {#ariaid-title11}

Récupère la requête codée.
{#r_ScopedGlideAggregateGetEncodedQuery__table_vy2_535_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| aucun |   |   |
[Tableau 18. Paramètres]

{#r_ScopedGlideAggregateGetEncodedQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateGetEncodedQuery__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Chaîne | Requête codée. |
[Tableau 19. Renvoie]

{#r_ScopedGlideAggregateGetEncodedQuery__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MIN', 'sys_mod_count');
    count.addAggregate('MAX', 'sys_mod_count');
    count.addAggregate('AVG', 'sys_mod_count');
    count.groupBy('category');
    count.query();
    gs.info(count.getEncodedQuery());

Sortie :

    ORDERBYcategory^GROUPBYcategory

## GlideAggregate inclus dans le champ d'application : getRowCount() {#ariaid-title12}

Récupère le nombre de lignes dans l'objet GlideAggregate.
{#r_ScopedGlideAggregateGetRowCount__table_vy2_535_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| aucun |   |   |
[Tableau 20. Paramètres]

{#r_ScopedGlideAggregateGetRowCount__table_vy2_535_jq} {#r_ScopedGlideAggregateGetRowCount__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Numéro | Nombre de lignes dans l'objet GlideAggregate. |
[Tableau 21. Renvoie]

{#r_ScopedGlideAggregateGetRowCount__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
      count.addAggregate('MIN', 'sys_mod_count');
      count.addAggregate('MAX', 'sys_mod_count');
      count.addAggregate('AVG', 'sys_mod_count');
      count.groupBy('category');
      count.query();
      gs.info(count.getRowCount());
      while (count.next()) {  
         var min = count.getAggregate('MIN', 'sys_mod_count');
         var max = count.getAggregate('MAX', 'sys_mod_count');
         var avg = count.getAggregate('AVG', 'sys_mod_count');
         var category = count.category.getDisplayValue();
         gs.info(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
      }

Sortie :

    6
    Database Update counts: MIN = 8 MAX = 48 AVG = 28.0000
    Hardware Update counts: MIN = 4 MAX = 14 AVG = 6.6250
    Inquiry / Help Update counts: MIN = 0 MAX = 34 AVG = 6.5714
    Network Update counts: MIN = 3 MAX = 37 AVG = 18.6000
    Request Update counts: MIN = 5 MAX = 39 AVG = 13.4000
    Software Update counts: MIN = 4 MAX = 98 AVG = 24.0000

## GlideAggregate inclus dans le périmètre : getTableName() {#ariaid-title13}

Récupère le nom de table associé à cet objet GlideAggregate.
{#r_ScopedGlideAggregateGetTableName__table_vc2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| aucun |   |   |
[Tableau 22. Paramètres]

{#r_ScopedGlideAggregateGetTableName__table_vc2_525_jq} {#r_ScopedGlideAggregateGetTableName__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Chaîne | Nom de table. |
[Tableau 23. Renvoie]

{#r_ScopedGlideAggregateGetTableName__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MIN', 'sys_mod_count');
    count.addAggregate('MAX', 'sys_mod_count');
    count.addAggregate('AVG', 'sys_mod_count');
    count.groupBy('category');
    count.query();
    gs.info(count.getTableName());

## GlideAggregate inclus dans le champ d'application : getValue (nom de chaîne) {#ariaid-title14}

Renvoie la valeur du champ spécifié.
{#r_ScopedGlideAggregateGetValue_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Nom du champ dans la table actuelle à retourner. |
[Tableau 24. Paramètres]

{#r_ScopedGlideAggregateGetValue_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGetValue_String__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Chaîne | Valeur du champ spécifié. Renvoie null si non valide (ne fait pas partie du jeu de résultats). |
[Tableau 25. Renvoie]

{#r_ScopedGlideAggregateGetValue_String__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MAX', 'sys_mod_count');
    count.groupBy('category');
    count.query();   
    while (count.next()) {  
      gs.info(count.getValue('category') + " category had " + count.getAggregate('MAX', 'sys_mod_count') + " updates");  
    }

Sortie :

    category had 12 updates
    hardware category had 15 updates
    inquiry category had 36 updates
    network category had 37 updates
    software category had 95 updates

## GlideAggregate inclus dans le champ d'application : groupBy (nom de chaîne) {#ariaid-title15}

Fournit le nom d'un champ à utiliser pour regrouper les agrégats.
Peut être appelé de nombreuses fois pour définir plusieurs champs de groupe.
{#r_ScopedGlideAggregateGroupBy_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Nom du champ. |
[Tableau 26. Paramètres]

{#r_ScopedGlideAggregateGroupBy_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGroupBy_String__table_qpt_3f5_jq1__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 27. Renvoie]

{#r_ScopedGlideAggregateGroupBy_String__table_qpt_3f5_jq1}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MIN', 'sys_mod_count');
    count.addAggregate('MAX', 'sys_mod_count');
    count.addAggregate('AVG', 'sys_mod_count');
    count.groupBy('category');
    count.query();   
    while (count.next()) {  
         var min = count.getAggregate('MIN', 'sys_mod_count');
         var max = count.getAggregate('MAX', 'sys_mod_count');
         var avg = count.getAggregate('AVG', 'sys_mod_count');
         var category = count.category.getDisplayValue();
         gs.info(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
    }

Sortie :

    Database Update counts: MIN = 8 MAX = 48 AVG = 28.0000
    Hardware Update counts: MIN = 4 MAX = 14 AVG = 6.6250
    Inquiry / Help Update counts: MIN = 0 MAX = 34 AVG = 6.5714
    Network Update counts: MIN = 3 MAX = 37 AVG = 18.6000
    Request Update counts: MIN = 5 MAX = 39 AVG = 13.4000
    Software Update counts: MIN = 4 MAX = 98 AVG = 24.0000

## GlideAggregate inclus dans le champ d'application : hasNext() {#ariaid-title16}

Détermine s'il existe d'autres enregistrements dans l'objet GlideAggregate.
{#r_ScopedGlideAggregateHasNext__table_vy2_535_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| aucun |   |   |
[Tableau 28. Paramètres]

{#r_ScopedGlideAggregateHasNext__table_vy2_535_jq} {#r_ScopedGlideAggregateHasNext__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant s'il existe d'autres résultats dans l'ensemble de requêtes. Valeurs possibles : * true : plus de résultats se trouvent dans l'ensemble de requêtes. * faux : plus aucun résultat dans l'ensemble de requêtes. {#r_ScopedGlideAggregateHasNext__ul_bkh_hhc_dtb} |
[Tableau 29. Renvoie]

{#r_ScopedGlideAggregateHasNext__table_qpt_3f5_jq}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('AVG', 'sys_mod_count');
    agg.groupBy('category');
    agg.query();
    while (agg.hasNext()) {
        agg.next();
        var avg = agg.getAggregate('AVG', 'sys_mod_count');
        var category = agg.category.getDisplayValue();
        gs.info(category + ': AVG = ' + avg);
    }

Sortie :

    Database: AVG = 32.5000
    Hardware: AVG = 12.0000
    Inquiry / Help: AVG = 7.6667
    Network: AVG = 24.0000
    Request: AVG = 16.4000
    Software: AVG = 27.0833

## GlideAggregate inclus dans le périmètre : next() {#ariaid-title17}

Passe à l'enregistrement suivant dans GlideAggregate.
{#r_ScopedGlideAggregateNext__table_vy2_535_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| aucun |   |   |
[Tableau 30. Paramètres]

{#r_ScopedGlideAggregateNext__table_vy2_535_jq} {#r_ScopedGlideAggregateNext__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Booléen | Marqueur indiquant s'il existe d'autres résultats dans l'ensemble de requêtes. Valeurs possibles : * true : plus de résultats se trouvent dans l'ensemble de requêtes. * faux : plus aucun résultat dans l'ensemble de requêtes. {#r_ScopedGlideAggregateNext__ul_bkh_hhc_dtb} |
[Tableau 31. Renvoie]

{#r_ScopedGlideAggregateNext__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next()) {
       incidents = count.getAggregate('COUNT');
       gs.info(incidents);
    }

## GlideAggregate inclus dans le périmètre : orderBy(nom de chaîne) {#ariaid-title18}

Trie les agrégats à l'aide de la valeur du champ spécifié. Le champ est également ajouté à la liste Grouper par.
{#r_ScopedGlideAggregateOrderBy_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Nom du champ selon lequel trier les agrégats. Vous pouvez également fournir une fonction glidepour ordonner les agrégats, telle que `glidefunction :length(short_description).` Pour plus d'informations sur les fonctions Glide, reportez-vous à [la section Opérations des fonctions Glide](https://www.servicenow.com/docs/access?context=platform-support-functions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tableau 32. Paramètres]

{#r_ScopedGlideAggregateOrderBy_String__table_vy2_525_jq} {#r_ScopedGlideAggregateOrderBy_String__table_qpt_3f5_jq1__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 33. Renvoie]

{#r_ScopedGlideAggregateOrderBy_String__table_qpt_3f5_jq1}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count', 'category');
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count', 'category');
      agg2.orderBy('category');
      gs.info(category + ": Current number of incidents:" + count);
    }

Sortie :

    database: Current number of incidents:2
    hardware: Current number of incidents:8
    inquiry: Current number of incidents:28
    network: Current number of incidents:5
    request: Current number of incidents:5
    software: Current number of incidents:11

## GlideAggregate inclus dans le périmètre : orderByAggregate(String agg, String fieldName) {#ariaid-title19}

Trie les agrégats en fonction de l'agrégat et du champ spécifiés.
{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_ikq_hwt_vr__entry__3}

| Nom | Type | Description |
|-|-|-|
| Agrégation | Chaîne | Type d'agrégation. |
| Fieldname | Chaîne | Nom du champ à regrouper. |
[Tableau 34. Paramètres]

{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_ikq_hwt_vr} {#r_ScopedGlideAggregateOrderByAggregate_String_String__table_jkq_hwt_vr__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 35. Renvoie]

{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_jkq_hwt_vr}  

    ga.addAggregate('COUNT', 'category');
    ga.orderByAggregate('count', 'category');
    ga.query();
    while(ga.next()) {
      gs.info('Category: ' + ga.category + ' ' + ga.getAggregate('COUNT', 'category'));
    }

Sortie :

    Category: inquiry 18
    Category: software 11
    Category: hardware 7
    Category: network 5
    Category: request 5
    Category:  4
    Category: database 2

## GlideAggregate inclus dans le périmètre : orderByDesc(nom de chaîne) {#ariaid-title20}

Trie les agrégats par ordre décroissant en fonction du champ spécifié. Le champ sera également ajouté à la liste Grouper par.
{#r_ScopedGlideAggregateOrderByDesc_String__table_vy2_525_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| nom | Chaîne | Nom du champ. |
[Tableau 36. Paramètres]

{#r_ScopedGlideAggregateOrderByDesc_String__table_vy2_525_jq} {#r_ScopedGlideAggregateOrderByDesc_String__table_qpt_3f5_jq1__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 37. Renvoie]

{#r_ScopedGlideAggregateOrderByDesc_String__table_qpt_3f5_jq1}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count', 'category'); 
    agg.orderByDesc('category'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count', 'category');
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count', 'category');
      agg2.orderBy('category');
      gs.info(category + ": Current number of incidents:" + count);
    }

Sortie :

    software: Current number of incidents:11
    request: Current number of incidents:5
    network: Current number of incidents:5
    inquiry: Current number of incidents:28
    hardware: Current number of incidents:8
    database: Current number of incidents:2

## GlideAggregate inclus dans le champ d'application : query() {#ariaid-title21}

Émet la requête et obtient les résultats.
{#r_ScopedGlideAggregateQuery__table_vy2_535_jq__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 38. Paramètres]

{#r_ScopedGlideAggregateQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateQuery__table_qpt_3f5_jq1__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 39. Renvoie]

{#r_ScopedGlideAggregateQuery__table_qpt_3f5_jq1}  

    var count = new GlideAggregate('incident');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next()) {
       incidents = count.getAggregate('COUNT');
    }
    gs.info('Number of incidents: ' + incidents);

## GlideAggregate inclus dans le champ d'application : setAggregateWindow(Number firstRow, Number lastRow) {#ariaid-title22}

Limite le nombre de lignes de la table à inclure dans la requête d'agrégat.
{#ScopedGlAgg-setAggregateWindow_N_N__section_tjk_kfm_gtb__entry__3}

| Nom | Type | Description |
|-|-|-|
| première ligne | Numéro | Index de base zéro de la première ligne à inclure dans la requête d'agrégat, inclus. |
| dernière ligne | Numéro | Index de base zéro de la dernière ligne à inclure dans la requête d'agrégat, exclusif. |
[Tableau 40. Paramètres]

{#ScopedGlAgg-setAggregateWindow_N_N__table_orv_jcm_gtb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 41. Renvoie]

{#ScopedGlAgg-setAggregateWindow_N_N__table_orv_jcm_gtb}  
Imprime le nombre de chaque catégorie pour les dix premiers enregistrements de la table Incident \[incident\].

    var incidentGroup = new GlideAggregate('incident');
    incidentGroup.addAggregate('COUNT', 'category');
    incidentGroup.setAggregateWindow(0, 10);
    incidentGroup.query();
    while (incidentGroup.next()) {
       var incidentCount = incidentGroup.getAggregate('COUNT', 'category');
       gs.info('{0} count: {1}', [incidentGroup.getValue('category'), incidentCount]);
    }

Sortie :

    database count: 1
    Hardware count: 1
    inquiry count: 7
    software count: 1

## GlideAggregate inclus dans le champ d'application : setGroup(booléen b) {#ariaid-title23}

Définit s'il faut regrouper les résultats renvoyés.
{#r_ScopedGlideAggregateSetGroup_Boolean__table_w24_dxt_vr__entry__3}

| Nom | Type | Description |
|-|-|-|
| b | Booléen | Marqueur indiquant s'il faut regrouper les résultats. Valeurs valides : * vrai : regroupez les résultats. * faux : ne pas regrouper les résultats. {#r_ScopedGlideAggregateSetGroup_Boolean__ul_ylw_phc_dtb} |
[Tableau 42. Paramètres]

{#r_ScopedGlideAggregateSetGroup_Boolean__table_w24_dxt_vr} {#r_ScopedGlideAggregateSetGroup_Boolean__table_x24_dxt_vr__entry__2}

| Type | Description |
|-|-|
| nul |   |
[Tableau 43. Renvoie]

{#r_ScopedGlideAggregateSetGroup_Boolean__table_x24_dxt_vr}  

    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT', 'category');
     
    ga.setGroup(true);
    ga.groupBy("category");
     
    ga.query();
     
    while(ga.next()) {
      gs.info('Category ' + ga.category + ' ' + ga.getAggregate('COUNT', 'category'));
      }

Sortie :

    Category database 2
    Category hardware 7
    Category inquiry 18
    Category network 5
    Category request 5
    Category software 11

## GlideAggregate inclus dans le champ d'application : setIntervalYearIncluded(Boolean b) {#ariaid-title24}

Définit s'il faut regrouper les résultats par année pour les tendances par jour. Ces tendances sont créées à l'aide de la méthode addTrend() avec l'intervalle de dayofweek temps.
Dépendance : [GlideAggregate inclus dans le périmètre : addTrend('\<fieldName\>', 'dayofweek').](https://servicenow-prod.fluidtopics.net/btm5_kHR0FeGrwYJm0pc4A#r_ScopedGlideAggAddTrend_S_S "Ajoute une tendance pour un champ spécifié. Utilisez une tendance pour afficher des modèles sur une période de temps.")
{#ScopedGlAgg-setIntervalYearInclu_B__entry__3}

| Nom | Type | Description |
|-|-|-|
| b | Booléen | Marqueur indiquant s'il faut inclure une année pour une tendance avec un intervalle de temps par jour de la semaine. Valeurs valides : * true : regrouper les résultats du jour de la semaine par année. * faux : exclure l'année des résultats de l'intervalle de temps. {#ScopedGlAgg-setIntervalYearInclu_B__ul_uz2_dph_gzb} Valeur par défaut : true |
[Tableau 44. Paramètres]

{#ScopedGlAgg-setIntervalYearInclu_B__table_orv_jcm_gtb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 45. Renvoie]

{#ScopedGlAgg-setIntervalYearInclu_B__table_orv_jcm_gtb}  
L'exemple suivant montre comment compter les incidents créés au cours des six derniers mois. Les incidents sont séparés par jour de la semaine, mais n'incluent pas l'année. Par exemple, les résultats par défaut pour jeudi incluraient l'année, par exemple `Jeudi/2023 : 16`.

    var incidentGroup = new GlideAggregate('incident');
    incidentGroup.addEncodedQuery("sys_created_onRELATIVEGT@month@ago@6");
    incidentGroup.addTrend('sys_created_on', 'dayofweek');
    incidentGroup.addAggregate('COUNT');
    incidentGroup.setIntervalYearIncluded(false);
    incidentGroup.query();
    while (incidentGroup.next()) {
        gs.info(incidentGroup.getValue('timeref') + ': ' + incidentGroup.getAggregate('COUNT'))};

Sortie :

    Sunday: 1
    Monday: 15
    Tuesday: 1
    Wednesday: 7
    Thursday: 16
    Saturday: 1


