---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideAggregate - Global

# GlideAggregate - Global {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 28 min. de leitura

A API GlideAggregate permite a criação de consultas de agregação de banco de dados.

A classe GlideAggregate é uma extensão da classe GlideRecord e fornece consultas de agregação de banco de dados (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN, STDDEV, SUM). Essa funcionalidade pode ser útil ao criar relatórios personalizados ou em cálculos para campos calculados.

Ao usar métodos GlideAggregate em campos de moeda ou preço, você está trabalhando com o valor da moeda de referência. Certifique-se de converter os valores agregados para a moeda da sessão do usuário para exibição. Como a taxa de conversão entre a moeda ou o valor do preço (valor exibido) e seu valor de [moeda](https://www.servicenow.com/docs/access?context=currency&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US) de referência (valor de agregação) pode mudar, o resultado pode não ser o que o usuário espera.

Para usar esta API para criar atributos dinâmicos, você deve ter a função dynamic_schema_writer. Para ler dados dinâmicos usando esta API, você deve ter a função dynamic_schema_reader.

Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US).  
Nota:  
Ao usar um sistema no local, o fuso horário do servidor de banco de dados deve ser definido como GMT/UTC para que esta classe funcione corretamente.

## GlideAggregate - addAggregate(cadeia de caracteres agg, cadeia de caracteres name) {#ariaid-title2}

Adiciona um agregado a uma consulta ao banco de dados.
{#r_GlideAggregate-addAggregate_String_String__id_zgs_fl2_4nb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| agg | Cadeia de caracteres | Nome de um agregado a ser usado. Valores válidos: * MÉDIA: valor médio da expressão. * COUNT: contagem do número de valores não nulos. * GROUP_CONCAT: concatena todos os valores não nulos do grupo em ordem crescente, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * GROUP_CONCAT_DISTINCT: concatena todos os valores não nulos do grupo em ordem crescente, remove duplicatas, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * MAX: maior ou máximo valor. * MIN: valor mínimo. * STDDEV: desvio padrão da população. * SOMA: soma de todos os valores. |
| nome | Cadeia de caracteres | Opcional para o nome do campo. Nome do campo, ou caminho para um atributo em um armazenamento de atributo dinâmico, para agrupar os resultados da agregação por. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). Padrão: nulo |
[Tabela 1. Parâmetros]

{#r_GlideAggregate-addAggregate_String_String__id_zgs_fl2_4nb} {#r_GlideAggregate-addAggregate_String_String__table_kzm_kck_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 2. Retorna]

{#r_GlideAggregate-addAggregate_String_String__table_kzm_kck_ws}  
O exemplo a seguir mostra como usar funções GlideAggregate na tabela Incidente \[incidente\].

    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(' ');
    }

Saída.

    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

O exemplo a seguir mostra como chamar este método usando um atributo em um armazenamento de atributo dinâmico.

    var ga_Inc = new GlideAggregate('incident');
    ga_Inc.groupBy('inc_dynamic_schema->cars->make');
    ga_Inc.addAggregate('AVG', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('MIN', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('MAX', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('SUM', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('COUNT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('STDDEV', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.query();
    while (ga_Inc.next()) {
        gs.info(gr_Inc.getValue('inc_dynamic_schema->cars->make'));
        gs.info('AVG: ' + ga_Inc.getAggregate('AVG', 'inc_dynamic_schema->cars->cost'));
        gs.info('MAX: ' + ga_Inc.getAggregate('MAX', 'inc_dynamic_schema->cars->cost'));
        gs.info('MIN: ' + ga_Inc.getAggregate('MIN', 'inc_dynamic_schema->cars->cost'));
        gs.info('SUM: ' + ga_Inc.getAggregate('SUM', 'inc_dynamic_schema->cars->cost'));
        gs.info('COUNT: ' + ga_Inc.getAggregate('COUNT', 'inc_dynamic_schema->cars->cost'));
        gs.info('STDDEV: ' + ga_Inc.getAggregate('STDDEV', 'inc_dynamic_schema->cars->cost'));
        gs.info('GROUP_CONCAT: ' + ga_Inc.getAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost'));
        gs.info('GROUP_CONCAT_DISTINCT: ' + ga_Inc.getAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost'));
        gs.info('COUNT(DISTINCT: ' + ga_Inc.getAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost'));
        gs.info(' ');
    }

Saída:

    *** Script: BMW
    *** Script: AVG: 31852.066666666667
    *** Script: MAX: 49182
    *** Script: MIN: 16544
    *** Script: SUM: 477781
    *** Script: COUNT: 15
    *** Script: STDDEV: 10376.50218706
    *** Script: GROUP_CONCAT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
    *** Script: GROUP_CONCAT_DISTINCT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
    *** Script: COUNT(DISTINCT: 15
    *** Script:  
    *** Script: Ford
    *** Script: AVG: 31520.090909090909
    *** Script: MAX: 47408
    *** Script: MIN: 16080
    *** Script: SUM: 346721
    *** Script: COUNT: 11
    *** Script: STDDEV: 11355.75551388
    *** Script: GROUP_CONCAT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
    *** Script: GROUP_CONCAT_DISTINCT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
    *** Script: COUNT(DISTINCT: 11
    *** Script:  
    *** Script: Honda
    *** Script: AVG: 31972.750000000000
    *** Script: MAX: 49187
    *** Script: MIN: 15208
    *** Script: SUM: 511564
    *** Script: COUNT: 16
    *** Script: STDDEV: 10240.67632207
    *** Script: GROUP_CONCAT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
    *** Script: GROUP_CONCAT_DISTINCT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
    *** Script: COUNT(DISTINCT: 16
    *** Script:  
    *** Script: Lexus
    *** Script: AVG: 29841.250000000000
    *** Script: MAX: 48406
    *** Script: MIN: 15517
    *** Script: SUM: 238730
    *** Script: COUNT: 8
    *** Script: STDDEV: 12073.56647214
    *** Script: GROUP_CONCAT: 15517,16964,22371,23900,32421,36620,42531,48406
    *** Script: GROUP_CONCAT_DISTINCT: 15517,16964,22371,23900,32421,36620,42531,48406
    *** Script: COUNT(DISTINCT: 8
    *** Script:  
    *** Script: Tesla
    *** Script: AVG: 30790.000000000000
    *** Script: MAX: 45032
    *** Script: MIN: 16724
    *** Script: SUM: 431060
    *** Script: COUNT: 14
    *** Script: STDDEV: 8510.068136760580
    *** Script: GROUP_CONCAT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
    *** Script: GROUP_CONCAT_DISTINCT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
    *** Script: COUNT(DISTINCT: 14
    *** Script:  
    *** Script: Toyota
    *** Script: AVG: 32115.444444444444
    *** Script: MAX: 49418
    *** Script: MIN: 15188
    *** Script: SUM: 289039
    *** Script: COUNT: 9
    *** Script: STDDEV: 12120.76776767
    *** Script: GROUP_CONCAT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
    *** Script: GROUP_CONCAT_DISTINCT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
    *** Script: COUNT(DISTINCT: 9
    *** Script:

### Equivalente com escopo {#r_GlideAggregate-addAggregate_String_String__section_emz_mjr_mcb}

Para usar o método addAggregate() em uma aplicação com escopo, use o método com escopo correspondente: [addAggregate()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateAddAggregate_String_String "Adiciona um agregado a uma consulta ao banco de dados.").

## GlideAggregate - addBizCalendarTrend(cadeia de caracteres fieldName, cadeia de caracteres bizCalendarSysId) {#ariaid-title3}

Adiciona tendências por um calendário de negócios à consulta agregada. Este método permite que você escolha um campo de data e hora nos registros GlideRecord e grupo correspondentes com base em um período de tempo do calendário comercial especificado.
Nota:  
Este método não usa o operador JOIN nas consultas SQL.
{#GlideAgg-addBizCalendarTrend_S_S__table_opp_y5l_lyb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fieldName | Cadeia de caracteres | Campo de data e hora no GlideRecord associado a ser usado para determinar em qual grupo ou período de tempo do calendário o registro será incluído. |
| bizCalendarSysId | Cadeia de caracteres | Sys_id do registro de calendário a ser usado. Este é o calendário que contém os períodos de tempo desejados. |
[Tabela 3. Parâmetros]

{#GlideAgg-addBizCalendarTrend_S_S__table_opp_y5l_lyb} {#GlideAgg-addBizCalendarTrend_S_S__table_ppp_y5l_lyb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 4. Retorna]

{#GlideAgg-addBizCalendarTrend_S_S__table_ppp_y5l_lyb}  
O exemplo de código a seguir mostra a contagem de registros de incidentes agrupados pelos períodos do calendário comercial "Mês".

    var monthCal = "4d7ddda353f3001076bcddeeff7b12b1"
    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT');
    ga.addBizCalendarTrend('opened_at', monthCal);
    ga.setGroup(false);
    ga.query();
    gs.print(ga.getRowCount());
    while (ga.next()) {
      gs.info(ga.getValue('bizcalref') + ', ' + ga.getValue('bizcalrefend') + ', ' + ga.getAggregate('COUNT'));
    }

Saída:

    13
    2015-08-01 00:00:00, 2015-09-01 00:00:00, 2
    2015-11-01 00:00:00, 2015-12-01 00:00:00, 2
    2016-08-01 00:00:00, 2016-09-01 00:00:00, 3
    2016-12-01 00:00:00, 2017-01-01 00:00:00, 1
    2018-08-01 00:00:00, 2018-09-01 00:00:00, 3
    2018-09-01 00:00:00, 2018-10-01 00:00:00, 3
    2018-10-01 00:00:00, 2018-11-01 00:00:00, 2
    2019-07-01 00:00:00, 2019-08-01 00:00:00, 2
    2020-06-01 00:00:00, 2020-07-01 00:00:00, 1
    2021-01-01 00:00:00, 2021-02-01 00:00:00, 1
    2023-04-01 00:00:00, 2023-05-01 00:00:00, 15
    2023-05-01 00:00:00, 2023-06-01 00:00:00, 23
    2023-07-01 00:00:00, 2023-08-01 00:00:00, 9

## GlideAggregate - addEncodedQuery(cadeia de caracteres consulta) {#ariaid-title4}

Adiciona uma consulta codificada a outras consultas que podem ter sido definidas para este agregado.
{#r_GlideAggregate-addEncodedQuery_String__table_vbj_r1k_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| consulta | Cadeia de caracteres | Cadeia de caracteres de consulta codificada a ser adicionada ao agregado. |
[Tabela 5. Parâmetros]

{#r_GlideAggregate-addEncodedQuery_String__table_vbj_r1k_ws} {#r_GlideAggregate-addEncodedQuery_String__table_wbj_r1k_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 6. Retorna]

{#r_GlideAggregate-addEncodedQuery_String__table_wbj_r1k_ws}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count','category'); 
    agg.orderByAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)'); 
    agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count','category');
      var query = agg.getQuery();  
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count','category');
      agg2.orderByAggregate('count', 'category');
      agg2.orderBy('category');
      agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
      agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
      agg2.addEncodedQuery(query);
      agg2.query();
      var last = "";
      while (agg2.next()) {
         last = agg2.getAggregate('count','category');      
      }
      gs.log(category + ": Last month:" + count + " Previous Month:" + last);
     
    }

### Equivalente com escopo {#r_GlideAggregate-addEncodedQuery_String__section_t1m_sjr_mcb}

Para usar o método addEncodedQuery() em uma aplicação com escopo, use o método com escopo correspondente: [addEncodedQuery()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateAddEncodedQuery_String "Adiciona uma consulta codificada a outras consultas que podem ter sido definidas para este agregado.").

## GlideAggregate - addHaving(cadeia de caracteres nome, operador de cadeia de caracteres, valor de cadeia de caracteres) {#ariaid-title5}

Adiciona um elemento "tendo" ao agregado, como selecionar categoria, contagem(\*) do grupo de incidentes por categoria TENDO contagem(\*) \> 5.
{#r_GlideAggregate-addHaving_String_String_String__table_asq_nbk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Agregar para filtrar. Por exemplo, COUNT. |
| operador | Cadeia de caracteres | Símbolo do operador. Por exemplo, \<, \>, =, !=. |
| valor | Cadeia de caracteres | Valor a ser consultado. Por exemplo, '5'. |
[Tabela 7. Parâmetros]

{#r_GlideAggregate-addHaving_String_String_String__table_asq_nbk_ws} {#r_GlideAggregate-addHaving_String_String_String__table_bsq_nbk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 8. Retorna]

{#r_GlideAggregate-addHaving_String_String_String__table_bsq_nbk_ws}  

    var trend = new GlideAggregate('incident');
    trend.addTrend ('opened_at','Month');
    trend.addAggregate('COUNT');

    //addHaving limits the results returned to those in which the aggregate COUNT is greater than 2
    trend.addHaving('COUNT', '>', '2');
    trend.setGroup(false);
    trend.query();
    while(trend.next()) {
      gs.print(('Incidents by month ' + trend.getValue('timeref') + ' where count is more than 2 count is: ' + trend.getAggregate('COUNT'));
    }

Saída:

    Incidents by month 9/2018 where count is more than 2 count is: 3
    Incidents by month 10/2018 where count is more than 2 count is: 8
    Incidents by month 11/2018 where count is more than 2 count is: 14

## GlideAggregate - addHaving(cadeia de caracteres aggName, cadeia de caracteres fieldName, operador de cadeia de caracteres, valor de cadeia de caracteres) {#ariaid-title6}

Adiciona um elemento "tendo" ao agregado, como selecionar categoria, contagem(\*) do grupo de incidentes por categoria TENDO contagem(\*) \> 5. Esta implementação do método permite especificar um campo específico em uma tabela ou uma dinâmica Atributo para agir.
{#GlideAgg-addHaving_S_S_S_S__table_asq_nbk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| aggName | Cadeia de caracteres | Agregar para filtrar. Por exemplo, COUNT. |
| fieldName | Cadeia de caracteres | Nome de campo ou caminho para um atributo em um armazenamento de atributo dinâmico. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
| operador | Cadeia de caracteres | Símbolo do operador. Por exemplo, \<, \>, =, !=. |
| valor | Cadeia de caracteres | Valor a ser consultado. Por exemplo, '5'. |
[Tabela 9. Parâmetros]

{#GlideAgg-addHaving_S_S_S_S__table_asq_nbk_ws} {#GlideAgg-addHaving_S_S_S_S__table_bsq_nbk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 10. Retorna]

{#GlideAgg-addHaving_S_S_S_S__table_bsq_nbk_ws}  
O exemplo de código a seguir mostra como identificar os números de série duplicados na tabela cmdb usando um nome de campo na chamada do método addHaving().

    function getDupes(tableName, dpField) { 
        var ga = new GlideAggregate(tableName);
        ga.addAggregate('COUNT', dpField); // Aggregate to count values in whatever field is passed as dpField
        ga.addHaving('COUNT', dpField, '>', '1'); // Returns only records having more than one active instance of dpField
        ga.query(); 
        var arDupes = new Array(); // Build array to push the results into
        while (ga.next()) { 
          arDupes.push(ga.getValue(dpField)); // Push the value of the dupe field to the array  
        }
        return arDupes;
    }
     
    var tableName = "cmdb";
    var dpField = "serial_number";
     
    gs.print(getDupes(tableName, dpField));

Saída:

    Incidents by month 9/2018 where count is more than 2 count is: 3
    Incidents by month 10/2018 where count is more than 2 count is: 8
    Incidents by month 11/2018 where count is more than 2 count is: 14

O exemplo a seguir mostra para identificar duplicatas, mas usa um atributo dinâmico em vez de um campo na chamada de método addHaving().

    function getDupes(tableName, dpField) { 
        var ga = new GlideAggregate(tablename);
        ga.addAggregate('COUNT', dpField); // Aggregate to count values in whatever dynamic attribute is passed as dpField
        ga.addHaving('COUNT', dpField, '>', '1'); // Returns only records having more than one active instance of dpField
        ga.query(); 
        var arDupes = new Array(); // Build array to push the results into
        while (ga.next()) { 
          arDupes.push(ga.getValue(dpField)); // Push the value of the dupe field to the array  
        }
        return arDupes;
    }
     
    var tableName = "cmdb";
    var dpField = "dyn_att_field->group->attr";
     
    gs.print(getDupes(tableName, dpField));

Saída:

    Incidents by month 9/2018 where count is more than 2 count is: 3
    Incidents by month 10/2018 where count is more than 2 count is: 8
    Incidents by month 11/2018 where count is more than 2 count is: 14

## GlideAggregate - addTrend(cadeia de caracteres fieldName, cadeia de caracteres timeInterval, Number numUnits) {#ariaid-title7}

Adiciona uma tendência a um campo. Use uma tendência para mostrar padrões ao longo de um período de tempo.
Nota:  
Para controlar se os resultados de dayofweek devem ser agrupados por ano, use [GlideAggregate -- setIntervalYearIncluded(Booliano b)](https://servicenow-prod.fluidtopics.net/0P1m0NRwI4tajY37~Xb54Q#GlideAgg-setIntervalYearIncluded_B "Define se os resultados devem ser agrupados por ano para tendências do dia da semana. Essas tendências são criadas usando o método addTrend() com o intervalo de tempo dayofweek.").
{#r_GlideAggregate-addTrend_String_String__table_tlk_cdk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fieldName | Cadeia de caracteres | Nome do campo para o qual a tendência deve ocorrer. |
| intervalo de tempo | Cadeia de caracteres | Intervalo de tempo para a tendência. Valores válidos: * data * dia da semana * hora * minuto * trimestre * valor * semana * ano {#r_GlideAggregate-addTrend_String_String__ul_rm5_xqq_gnb} |
| unidades numéricas | Número | Opcional. Válido somente quando timeInterval = minuto. Número de minutos a serem incluídos na tendência. Padrão: 1 |
[Tabela 11. Parâmetros]

{#r_GlideAggregate-addTrend_String_String__table_tlk_cdk_ws} {#r_GlideAggregate-addTrend_String_String__table_ulk_cdk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 12. Retorna]

{#r_GlideAggregate-addTrend_String_String__table_ulk_cdk_ws}  

    var trend = new GlideAggregate('incident');  
    trend.addTrend ('opened_at','month');  
    trend.addAggregate('COUNT');  
    trend.setGroup(false);  
    trend.query();  
    while(trend.next()) {  
       gs.print(trend.getValue('timeref') + ': ' + trend.getAggregate('COUNT'));  
    }  

Saída:

    9/2018: 3
    10/2018: 8
    11/2018: 14

### Equivalente com escopo {#r_GlideAggregate-addTrend_String_String__section_c5j_trd_3z}

Para usar o método addTrend() em uma aplicação com escopo, use o método com escopo correspondente: [addTrend()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggAddTrend_S_S "Adiciona uma tendência para um campo especificado. Use uma tendência para mostrar padrões ao longo de um período de tempo.").

## GlideAggregate - getAggregate (cadeia de caracteres agg, cadeia de caracteres name) {#ariaid-title8}

Obtém o valor de um agregado do registro atual.
{#r_GlideAggregate-getAggregate_String_String__table_udy_sdk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| agg | Cadeia de caracteres | Tipo do agregado. Valores válidos: * MÉDIA: valor médio da expressão. * COUNT: contagem do número de valores não nulos. * GROUP_CONCAT: concatena todos os valores não nulos do grupo em ordem crescente, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * GROUP_CONCAT_DISTINCT: concatena todos os valores não nulos do grupo em ordem crescente, remove duplicatas, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * MAX: maior ou máximo valor. * MIN: valor mínimo. * STDDEV: desvio padrão da população. * SOMA: soma de todos os valores. |
| nome | Cadeia de caracteres | Nome do campo ou caminho para um atributo em um esquema dinâmico do qual o agregado será obtido. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tabela 13. Parâmetros]

{#r_GlideAggregate-getAggregate_String_String__table_udy_sdk_ws} {#r_GlideAggregate-getAggregate_String_String__table_vdy_sdk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Valor da agregação. Se os valores que estão sendo agregados forem valores de moeda de FX, o valor retornado estará no formato\<currency_code;currency_value\> , como: `USD;134.980000` . Nota: Se o campo especificado contiver valores de moeda de FX de tipos de moeda mista, o método não poderá agregar os valores e retornará um ponto e vírgula (;). |
[Tabela 14. Retorna]

{#r_GlideAggregate-getAggregate_String_String__table_vdy_sdk_ws}  
Este exemplo mostra como obter o agregado COUNT.

    function doMyBusinessRule(assigned_to, number) {
      var agg = new GlideAggregate('incident');
      agg.addQuery('assigned_to', assigned_to);
      agg.addQuery('category', number);
      agg.addAggregate("COUNT");
      agg.query();
      var answer = 'false';
      if (agg.next()) {
        answer = agg.getAggregate("COUNT");
        if (answer > 0)
          answer = 'true';
        else
          answer = 'false';
      }
      return answer; 
    }

Este exemplo mostra a agregação de um campo de Moeda de 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'));
    }

Saída:

    *** 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

O exemplo a seguir mostra como chamar este método usando um atributo em um armazenamento de atributo dinâmico.

    var ga_Inc = new GlideAggregate('incident');
    ga_Inc.groupBy('inc_dynamic_schema->cars->make');
    ga_Inc.addAggregate('AVG', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('MIN', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('MAX', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('SUM', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('COUNT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('STDDEV', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.addAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost');
    ga_Inc.query();
    while (ga_Inc.next()) {
        gs.info(gr_Inc.getValue('inc_dynamic_schema->cars->make'));
        gs.info('AVG: ' + ga_Inc.getAggregate('AVG', 'inc_dynamic_schema->cars->cost'));
        gs.info('MAX: ' + ga_Inc.getAggregate('MAX', 'inc_dynamic_schema->cars->cost'));
        gs.info('MIN: ' + ga_Inc.getAggregate('MIN', 'inc_dynamic_schema->cars->cost'));
        gs.info('SUM: ' + ga_Inc.getAggregate('SUM', 'inc_dynamic_schema->cars->cost'));
        gs.info('COUNT: ' + ga_Inc.getAggregate('COUNT', 'inc_dynamic_schema->cars->cost'));
        gs.info('STDDEV: ' + ga_Inc.getAggregate('STDDEV', 'inc_dynamic_schema->cars->cost'));
        gs.info('GROUP_CONCAT: ' + ga_Inc.getAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost'));
        gs.info('GROUP_CONCAT_DISTINCT: ' + ga_Inc.getAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost'));
        gs.info('COUNT(DISTINCT: ' + ga_Inc.getAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost'));
        gs.info(' ');
    }

Saída:

    *** Script: BMW
    *** Script: AVG: 31852.066666666667
    *** Script: MAX: 49182
    *** Script: MIN: 16544
    *** Script: SUM: 477781
    *** Script: COUNT: 15
    *** Script: STDDEV: 10376.50218706
    *** Script: GROUP_CONCAT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
    *** Script: GROUP_CONCAT_DISTINCT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
    *** Script: COUNT(DISTINCT: 15
    *** Script:  
    *** Script: Ford
    *** Script: AVG: 31520.090909090909
    *** Script: MAX: 47408
    *** Script: MIN: 16080
    *** Script: SUM: 346721
    *** Script: COUNT: 11
    *** Script: STDDEV: 11355.75551388
    *** Script: GROUP_CONCAT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
    *** Script: GROUP_CONCAT_DISTINCT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
    *** Script: COUNT(DISTINCT: 11
    *** Script:  
    *** Script: Honda
    *** Script: AVG: 31972.750000000000
    *** Script: MAX: 49187
    *** Script: MIN: 15208
    *** Script: SUM: 511564
    *** Script: COUNT: 16
    *** Script: STDDEV: 10240.67632207
    *** Script: GROUP_CONCAT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
    *** Script: GROUP_CONCAT_DISTINCT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
    *** Script: COUNT(DISTINCT: 16
    *** Script:  
    *** Script: Lexus
    *** Script: AVG: 29841.250000000000
    *** Script: MAX: 48406
    *** Script: MIN: 15517
    *** Script: SUM: 238730
    *** Script: COUNT: 8
    *** Script: STDDEV: 12073.56647214
    *** Script: GROUP_CONCAT: 15517,16964,22371,23900,32421,36620,42531,48406
    *** Script: GROUP_CONCAT_DISTINCT: 15517,16964,22371,23900,32421,36620,42531,48406
    *** Script: COUNT(DISTINCT: 8
    *** Script:  
    *** Script: Tesla
    *** Script: AVG: 30790.000000000000
    *** Script: MAX: 45032
    *** Script: MIN: 16724
    *** Script: SUM: 431060
    *** Script: COUNT: 14
    *** Script: STDDEV: 8510.068136760580
    *** Script: GROUP_CONCAT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
    *** Script: GROUP_CONCAT_DISTINCT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
    *** Script: COUNT(DISTINCT: 14
    *** Script:  
    *** Script: Toyota
    *** Script: AVG: 32115.444444444444
    *** Script: MAX: 49418
    *** Script: MIN: 15188
    *** Script: SUM: 289039
    *** Script: COUNT: 9
    *** Script: STDDEV: 12120.76776767
    *** Script: GROUP_CONCAT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
    *** Script: GROUP_CONCAT_DISTINCT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
    *** Script: COUNT(DISTINCT: 9
    *** Script:

### Equivalente com escopo {#r_GlideAggregate-getAggregate_String_String__section_pvv_fkr_mcb}

Para usar o método getAggregate() em uma aplicação com escopo, use o método com escopo correspondente: [getAggregate()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateGetAggregate_String_String "Retorna o valor de um agregado do registro atual.").

## GlideAggregate -- getDynamicAttributeValue(cadeia de caracteres fullPath) {#ariaid-title9}

Retorna o valor do atributo dinâmico localizado em um caminho especificado.
{#GA-getDynamicAttributeValue_S__table_oh3_x1x_1bc__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| caminho completo | Cadeia de caracteres | Caminho a ser usado para localizar o atributo dinâmico desejado. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. |
[Tabela 15. Parâmetros]

{#GA-getDynamicAttributeValue_S__table_oh3_x1x_1bc} {#GA-getDynamicAttributeValue_S__table_ph3_x1x_1bc__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Valor do atributo dinâmico localizado no caminho especificado. Se o parâmetro fullPath contiver dados inválidos ou o valor de atributo especificado não for um dos tipos de dados compatíveis, retornará nulo. |
[Tabela 16. Retorna]

{#GA-getDynamicAttributeValue_S__table_ph3_x1x_1bc}  
O exemplo de código a seguir mostra como chamar este método.

    var ga_Tab = new GlideAggregate('u_mytable');
    ga_Tab.groupBy('u_dyn_attr_store->paint->color');
    ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
    ga_Tab.query();

    while(ga_Tab.next()) {
        gs.info(
            "color: " + ga_Tab.getDynamicAttributeValue('u_dyn_attr_store->paint->color')
            + "  avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
    }

Saída:

    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

## GlideAggregate - getDynamicAttributeValue(cadeia de caracteres dynamicAttributeField, cadeia de caracteres groupAttrPath) {#ariaid-title10}

Retorna o valor do atributo dinâmico localizado em um campo especificado na tabela atual e um caminho de atributo especificado.
{#GA-getDynamicAttributeValue_S_S__table_n1f_fbx_1bc__entry__3}{#GA-getDynamicAttributeValue_S_S__DynS-dynamicAttributeField-entry}

| Nome | Tipo | Descrição |
|-|-|-|
| dynamicAttributeField | Cadeia de caracteres | Nome do campo na tabela que contém o atributo dinâmico. |
| groupAttrPath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: `"group_name->attr_name"` * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo Nome da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\] ou no campo Grupo da tabela Atributos dinâmicos \[dynamic_attribute\]. * `attr_name`: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico \[dynamic_attribute\]. Por exemplo: `"carro->cor"` |
[Tabela 17. Parâmetros]

{#GA-getDynamicAttributeValue_S_S__table_n1f_fbx_1bc} {#GA-getDynamicAttributeValue_S_S__table_o1f_fbx_1bc__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Valor do atributo dinâmico localizado no caminho especificado. Se os parâmetros dynamicAttributeField ou groupAttrPath forem inválidos, retornará nulo. |
[Tabela 18. Retorna]

{#GA-getDynamicAttributeValue_S_S__table_o1f_fbx_1bc}  
O exemplo de código a seguir mostra como chamar este método.

    var ga_Tab = new GlideAggregate('u_mytable');
    ga_Tab.groupBy('u_dyn_attr_store->paint->color');
    ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
    ga_Tab.query();

    while(ga_Tab.next()) {
        gs.info(
            "color: " + ga_Tab.getDynamicAttributeValue('u_dyn_attr_store', 'paint->color')
            + "  avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
    }

Saída:

    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

## GlideAggregate -- getDynamicAttributeDisplayValue(cadeia de caracteres fullPath) {#ariaid-title11}

Retorna o valor de exibição do atributo dinâmico localizado no caminho especificado.
{#GA-getDynAttributeDisplayValue_S__table_nht_nbx_1bc__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| caminho completo | Cadeia de caracteres | Caminho a ser usado para localizar o atributo dinâmico desejado. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. |
[Tabela 19. Parâmetros]

{#GA-getDynAttributeDisplayValue_S__table_nht_nbx_1bc} {#GA-getDynAttributeDisplayValue_S__table_oht_nbx_1bc__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Valor de exibição do atributo dinâmico localizado no caminho especificado. Se o parâmetro fullPath for inválido, retornará nulo. |
[Tabela 20. Retorna]

{#GA-getDynAttributeDisplayValue_S__table_oht_nbx_1bc}  
O exemplo de código a seguir mostra como chamar este método.

    var ga_Tab = new GlideAggregate('u_mytable');
    ga_Tab.groupBy('u_dyn_attr_store->paint->color');
    ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
    ga_Tab.query();

    while(ga_Tab.next()) {
        gs.info(
            "color: " + ga_Tab.getDynamicAttributeDisplayValue('u_dyn_attr_store->paint->color')
            + "  avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
    }

Saída:

    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

## GlideAggregate - getDynamicAttributeDisplayValue(cadeia de caracteres dynamicAttributeField, cadeia de caracteres groupAttrPath) {#ariaid-title12}

Retorna o valor de exibição do atributo dinâmico localizado em um campo de tabela e caminho de atributo especificados.
{#GA-getDynAttributeDisplayValue_S_S__table_vm3_wbx_1bc__entry__3}{#GA-getDynAttributeDisplayValue_S_S__DynS-dynamicAttributeField-entry}

| Nome | Tipo | Descrição |
|-|-|-|
| dynamicAttributeField | Cadeia de caracteres | Nome do campo na tabela que contém o atributo dinâmico. |
| groupAttrPath | Cadeia de caracteres | Caminho do atributo a ser usado para localizar o atributo de esquema dinâmico associado. Formato: `"group_name->attr_name"` * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo Nome da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\] ou no campo Grupo da tabela Atributos dinâmicos \[dynamic_attribute\]. * `attr_name`: nome do atributo dinâmico no grupo dinâmico. Localizado no campo Nome da tabela Atributo dinâmico \[dynamic_attribute\]. Por exemplo: `"carro->cor"` |
[Tabela 21. Parâmetros]

{#GA-getDynAttributeDisplayValue_S_S__table_vm3_wbx_1bc} {#GA-getDynAttributeDisplayValue_S_S__table_wm3_wbx_1bc__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Valor de exibição do atributo dinâmico localizado no caminho especificado. Se os parâmetros dynamicAttributeField ou groupAttrPath forem inválidos, retornará nulo. |
[Tabela 22. Retorna]

{#GA-getDynAttributeDisplayValue_S_S__table_wm3_wbx_1bc}  
O exemplo de código a seguir mostra como chamar este método.

    var ga_Tab = new GlideAggregate('u_mytable');
    ga_Tab.groupBy('u_dyn_attr_store->paint->color');
    ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
    ga_Tab.query();

    while(ga_Tab.next()) {
        gs.info(
            "color: " + ga_Tab.getDynamicAttributeDisplayValue('u_dyn_attr_store', 'paint->color')
            + "  avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
    }

Saída:

    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

## GlideAggregate -- getQuery() {#ariaid-title13}

Recupera a consulta necessária para retornar o agregado atual.
{#r_GlideAggregate-getQuery__table_bnl_l2k_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 23. Parâmetros]

{#r_GlideAggregate-getQuery__table_bnl_l2k_ws} {#r_GlideAggregate-getQuery__table_cnl_l2k_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | A consulta. |
[Tabela 24. Retorna]

{#r_GlideAggregate-getQuery__table_cnl_l2k_ws}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count','category'); 
    agg.orderByAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)'); 
    agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count','category');
      var query = agg.getQuery();  
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count','category');
      agg2.orderByAggregate('count', 'category');
      agg2.orderBy('category');
      agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
      agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
      agg2.addEncodedQuery(query);
      agg2.query();
      var last = "";
      while (agg2.next()) {
         last = agg2.getAggregate('count','category');      
      }
      gs.log(category + ": Last month:" + count + " Previous Month:" + last);
     
    }

## GlideAggregate -- getRowCount() {#ariaid-title14}

Recupera o número de linhas no objeto GlideAggregate.
{#GlideAgg-getRowCount__table_vy2_535_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 25. Parâmetros]

{#GlideAgg-getRowCount__table_vy2_535_jq} {#GlideAgg-getRowCount__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Número | Número de linhas no objeto GlideAggregate. |
[Tabela 26. Retorna]

{#GlideAgg-getRowCount__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);
      }

Saída:

    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

### Equivalente com escopo {#GlideAgg-getRowCount__section_cm1_zsn_nyb}

Para usar o método getRowCount() em uma aplicação com escopo, use o método com escopo correspondente: [Scoped GlideAggregate - getRowCount()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateGetRowCount "Recupera o número de linhas no objeto GlideAggregate.").

## GlideAggregate - getTotal (cadeia de caracteres agg, cadeia de caracteres name) {#ariaid-title15}

Retorna o número de registros somando um agregado.
{#r_GlideAggregate-getTotal_String_String__table_kl5_v2k_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| agg | Cadeia de caracteres | Nome de um agregado a ser usado. Valores válidos: * MÉDIA: valor médio da expressão. * COUNT: contagem do número de valores não nulos. * GROUP_CONCAT: concatena todos os valores não nulos do grupo em ordem crescente, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * GROUP_CONCAT_DISTINCT: concatena todos os valores não nulos do grupo em ordem crescente, remove duplicatas, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * MAX: maior ou máximo valor. * MIN: valor mínimo. * STDDEV: desvio padrão da população. * SOMA: soma de todos os valores. |
| nome | Cadeia de caracteres | Nome do campo a ser agregado. |
[Tabela 27. Parâmetros]

{#r_GlideAggregate-getTotal_String_String__table_kl5_v2k_ws} {#r_GlideAggregate-getTotal_String_String__table_ll5_v2k_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Número | Número de registros. |
[Tabela 28. Retorna]

{#r_GlideAggregate-getTotal_String_String__table_ll5_v2k_ws}  

    var incidentGA = new GlideAggregate('incident');
    incidentGA.addQuery('category', 'software'); 
    incidentGA.addAggregate('COUNT');  
    incidentGA.addTrend('opened_at','year'); // Counting number of incidents for software category per year
    incidentGA.setGroup(false);
    incidentGA.query();
    while(incidentGA.next()){
      gs.info('Incidents opened on year - '+incidentGA.getValue('timeref')+' - '+incidentGA.getAggregate('COUNT'));
    }
    gs.info('Total Aggregate Value >> '+ incidentGA.getTotal('COUNT')); 

Saída:

    Incidents opened on year - 2015 - 1
    Incidents opened on year - 2018 - 5
    Incidents opened on year - 2020 - 10
    Total Aggregate Value >> 16

## GlideAggregate - getValue(cadeia de caracteres nome) {#ariaid-title16}

Retorna o valor de um campo ou um atributo dinâmico.
{#r_GlideAggregate-getValue_String__table_odk_kfk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome de campo ou caminho para um atributo em um armazenamento de atributo dinâmico. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. |
[Tabela 29. Parâmetros]

{#r_GlideAggregate-getValue_String__table_odk_kfk_ws} {#r_GlideAggregate-getValue_String__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Valor do campo especificado. Retorna nulo se for inválido (não faz parte do conjunto de resultados). |
[Tabela 30. Retorna]

{#r_GlideAggregate-getValue_String__table_qpt_3f5_jq}  

    var trend = new GlideAggregate('incident');
    trend.addTrend ('opened_at','Month');
    trend.addAggregate('COUNT');

    //addHaving limits the results returned to those in which the aggregate COUNT is greater than 2
    trend.addHaving('COUNT', '>', '2');
    trend.setGroup(false);
    trend.query();
    while(trend.next()) {
      gs.print(('Incidents by month ' + trend.getValue('timeref') + ' where count is more than 2 count is: ' + trend.getAggregate('COUNT'));
    }

Saída:

    Incidents by month 9/2018 where count is more than 2 count is: 3
    Incidents by month 10/2018 where count is more than 2 count is: 8
    Incidents by month 11/2018 where count is more than 2 count is: 14

### Equivalente com escopo {#r_GlideAggregate-getValue_String__section_nlm_3kr_mcb}

Para usar o método getValue() em uma aplicação com escopo, use o método com escopo correspondente: [getValue()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateGetValue_String "Retorna o valor do campo especificado.").

## GlideAggregate - groupBy(cadeia de caracteres nome) {#ariaid-title17}

Fornece o nome de um campo, ou um atributo em um armazenamento de atributo dinâmico, a ser usado ao agrupar os agregados.
Pode ser chamado várias vezes para definir vários campos de grupo.
{#r_GlideAggregate-groupBy_String__table_itp_2gk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome de campo ou caminho para um atributo em um armazenamento de atributo dinâmico. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tabela 31. Parâmetros]

{#r_GlideAggregate-groupBy_String__table_itp_2gk_ws} {#r_GlideAggregate-groupBy_String__table_ktp_2gk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 32. Retorna]

{#r_GlideAggregate-groupBy_String__table_ktp_2gk_ws}  
O exemplo a seguir mostra como chamar este método.

    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.log(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
    }

O exemplo a seguir mostra como chamar este método usando um atributo em um armazenamento de atributo dinâmico.

    var ga_AppTab = new GlideAggregate('application_table');
    ga_AppTab.addGroupBy('dyn_att_field->group->attr');
    ga_AppTab.addAggregate('AVG', 'dyn_att_field->group->attr1');
    ga_AppTab.addHaving('SUM', 'dyn_att_field->group->attr2', '>=', 420);
    ga.query();

### Equivalente com escopo {#r_GlideAggregate-groupBy_String__section_dff_pkr_mcb}

Para usar o método groupBy() em uma aplicação com escopo, use o método com escopo correspondente: [groupBy()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateGroupBy_String "Fornece o nome de um campo a ser usado no agrupamento de agregados.").

## GlideAggregate - orderBy(cadeia de caracteres nome) {#ariaid-title18}

Ordena os agregados usando o valor do campo especificado, caminho de atributo dinâmico ou glidefunction. O campo também é adicionado à lista agrupar por.
{#r_GlideAggregate-orderBy_String__table_ft1_wgk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome do campo, caminho para um atributo em um armazenamento de atributo dinâmico ou glidefunction a ser usado para solicitar os agregados. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). Formato glidefunction: `glidefunction:length(short_description)`. Para obter mais informações sobre glidefunctions, consulte [operações de glidefunctions](https://www.servicenow.com/docs/access?context=platform-support-functions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tabela 33. Parâmetros]

{#r_GlideAggregate-orderBy_String__table_ft1_wgk_ws} {#r_GlideAggregate-orderBy_String__table_gt1_wgk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 34. Retorna]

{#r_GlideAggregate-orderBy_String__table_gt1_wgk_ws}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count','category'); 
    agg.orderByAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)'); 
    agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count','category');
      var query = agg.getQuery();  
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count','category');
      agg2.orderByAggregate('count', 'category');
      agg2.orderBy('category');
      agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
      agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
      agg2.addEncodedQuery(query);
      agg2.query();
      var last = "";
      while (agg2.next()) {
         last = agg2.getAggregate('count','category');      
      }
      gs.log(category + ": Last month:" + count + " Previous Month:" + last);
    }

### Equivalente com escopo {#r_GlideAggregate-orderBy_String__section_zml_vkr_mcb}

Para usar o método orderBy() em uma aplicação com escopo, use o método com escopo correspondente: [orderBy()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateOrderBy_String "Ordena os agregados usando o valor do campo especificado. O campo também é adicionado à lista agrupar por.").

## GlideAggregate - orderByAggregate(cadeia de caracteres agg, cadeia de caracteres fieldName) {#ariaid-title19}

Ordena os agregados com base no agregado e no campo ou atributo dinâmico especificados.
{#r_GlideAggregate-orderByAggregate_String_String__table_ycv_lhk_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| agg | Cadeia de caracteres | Tipo de agregação. Valores válidos: * MÉDIA: valor médio da expressão. * COUNT: contagem do número de valores não nulos. * GROUP_CONCAT: concatena todos os valores não nulos do grupo em ordem crescente, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * GROUP_CONCAT_DISTINCT: concatena todos os valores não nulos do grupo em ordem crescente, remove duplicatas, une-os com uma vírgula (',') e retorna o resultado como uma cadeia de caracteres. * MAX: maior ou máximo valor. * MIN: valor mínimo. * STDDEV: desvio padrão da população. * SOMA: soma de todos os valores. |
| fieldName | Cadeia de caracteres | Nome do campo ou caminho para um atributo em um armazenamento de atributo dinâmico a ser agregado. Formato do caminho dinâmico: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`: nome de um campo de armazenamento de atributo dinâmico na tabela. * `group_name`: nome do grupo ao qual o atributo está associado. Localizado no campo group_name da tabela Grupo de atributos dinâmicos \[dynamic_attribute_group\]. * `attr_name`: nome do atributo dinâmico. Localizado no campo de atributo da tabela Atributo dinâmico \[dynamic_attribute\]. Para obter mais informações sobre atributos dinâmicos, consulte [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US). |
[Tabela 35. Parâmetros]

{#r_GlideAggregate-orderByAggregate_String_String__table_ycv_lhk_ws} {#r_GlideAggregate-orderByAggregate_String_String__table_zcv_lhk_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 36. Retorna]

{#r_GlideAggregate-orderByAggregate_String_String__table_zcv_lhk_ws}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count','category'); 
    agg.orderByAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)'); 
    agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count','category');
      var query = agg.getQuery();  
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count','category');
      agg2.orderByAggregate('count', 'category');
      agg2.orderBy('category');
      agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
      agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
      agg2.addEncodedQuery(query);
      agg2.query();
      var last = "";
      while (agg2.next()) {
         last = agg2.getAggregate('count','category');      
      }
      gs.log(category + ": Last month:" + count + " Previous Month:" + last);
     
    }

### Equivalente com escopo {#r_GlideAggregate-orderByAggregate_String_String__section_src_tkr_mcb}

Para usar o método orderByAggregate() em uma aplicação com escopo, use o método com escopo correspondente: [orderByAggregate()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateOrderByAggregate_String_String "Ordena os agregados com base no agregado e no campo especificados.").

## GlideAggregate - consulta () {#ariaid-title20}

Emite a consulta e obtém os resultados.
{#r_GlideAggregate-query__table_rxs_c3k_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 37. Parâmetros]

{#r_GlideAggregate-query__table_rxs_c3k_ws} {#r_GlideAggregate-query__table_sxs_c3k_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 38. Retorna]

{#r_GlideAggregate-query__table_sxs_c3k_ws}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count','category'); 
    agg.orderByAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)'); 
    agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count','category');
      var query = agg.getQuery();  
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count','category');
      agg2.orderByAggregate('count', 'category');
      agg2.orderBy('category');
      agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
      agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
      agg2.addEncodedQuery(query);
      agg2.query();
      var last = "";
      while (agg2.next()) {
         last = agg2.getAggregate('count','category');      
      }
      gs.log(category + ": Last month:" + count + " Previous Month:" + last);

### Equivalente com escopo {#r_GlideAggregate-query__section_m2z_ykr_mcb}

Para usar o método query() em uma aplicação com escopo, use o método com escopo correspondente: [query()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateQuery "Emite a consulta e obtém os resultados.").

## GlideAggregate - setAggregateWindow(Number firstRow, Number lastRow) {#ariaid-title21}

Limita o número de linhas da tabela a serem incluídas na consulta agregada.
{#GlideAgg-setAggregateWindow_N_N__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| firstRow | Número | Índice baseado em zero da primeira linha a ser incluída na consulta agregada, inclusive. |
| últimaLinha | Número | Índice baseado em zero da última linha a ser incluída na consulta agregada, exclusivo. |
[Tabela 39. Parâmetros]

{#GlideAgg-setAggregateWindow_N_N__table_orv_jcm_gtb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 40. Retorna]

{#GlideAgg-setAggregateWindow_N_N__table_orv_jcm_gtb}  
Imprime a contagem de cada categoria para os primeiros dez registros na tabela Incidente \[incidente\].

    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]);
    }

Saída:

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

### Equivalente com escopo {#GlideAgg-setAggregateWindow_N_N__section_m2z_ykr_mcb}

Para usar o método setAggregateWindow() em uma aplicação com escopo, use o método com escopo correspondente: [setAggregateWindow()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#ScopedGlAgg-setAggregateWindow_N_N "Limita o número de linhas da tabela a serem incluídas na consulta agregada.").

## GlideAggregate - setGroup(Booliano b) {#ariaid-title22}

Define se os resultados devem ser agrupados.
{#r_GlideAggregate-setGroup_Boolean__table_g3r_m3k_ws__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| b | Booliano | Sinalizador que indica se os resultados devem ser agrupados. Valores válidos: * verdadeiro: agrupe os resultados. * falso: não agrupe os resultados. {#r_GlideAggregate-setGroup_Boolean__ul_uhp_mr4_nnb} |
[Tabela 41. Parâmetros]

{#r_GlideAggregate-setGroup_Boolean__table_g3r_m3k_ws} {#r_GlideAggregate-setGroup_Boolean__table_h3r_m3k_ws__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 42. Retorna]

{#r_GlideAggregate-setGroup_Boolean__table_h3r_m3k_ws}  

    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT', 'category');
     
    ga.setGroup(true);

### Equivalente com escopo {#r_GlideAggregate-setGroup_Boolean__section_ryd_blr_mcb}

Para usar o método setGroup() em uma aplicação com escopo, use o método com escopo correspondente: [setGroup()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#r_ScopedGlideAggregateSetGroup_Boolean "Define se os resultados de retorno devem ser agrupados.").

## GlideAggregate -- setIntervalYearIncluded(Booliano b) {#ariaid-title23}

Define se os resultados devem ser agrupados por ano para tendências do dia da semana. Essas tendências são criadas usando o método addTrend() com o intervalo de tempo dayofweek.
Dependência: [GlideAggregate - addTrend('](https://servicenow-prod.fluidtopics.net/0P1m0NRwI4tajY37~Xb54Q#r_GlideAggregate-addAggregate_String_String "Adiciona um agregado a uma consulta ao banco de dados.")\<fieldName\> ', 'dia da semana') .
{#GlideAgg-setIntervalYearIncluded_B__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| b | Booliano | Sinalizador que indica se um ano deve ser incluído para uma tendência com um intervalo de tempo de dia da semana. Valores válidos: * verdadeiro: resultados do dia da semana do grupo por ano. * falso: excluir o ano dos resultados do intervalo de tempo. {#GlideAgg-setIntervalYearIncluded_B__ul_uz2_dph_gzb} Padrão: verdadeiro |
[Tabela 43. Parâmetros]

{#GlideAgg-setIntervalYearIncluded_B__table_orv_jcm_gtb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 44. Retorna]

{#GlideAgg-setIntervalYearIncluded_B__table_orv_jcm_gtb}  
O exemplo a seguir mostra como contar incidentes criados nos últimos seis meses. Os incidentes são separados por dia da semana, mas não incluindo o ano. Por exemplo, os resultados padrão para quinta-feira incluiriam o ano, como `quinta-feira/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'))};

Saída:

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

### Equivalente com escopo {#GlideAgg-setIntervalYearIncluded_B__section_m2z_ykr_mcb}

Para usar o método setIntervalYearIncluded() em uma aplicação com escopo, use o método com escopo correspondente: [setIntervalYearIncluded()](https://servicenow-prod.fluidtopics.net/VXSUytA8UkgU_y4ZJzKxtw#ScopedGlAgg-setIntervalYearInclu_B "Define se os resultados devem ser agrupados por ano para tendências do dia da semana. Essas tendências são criadas usando o método addTrend() com o intervalo de tempo dayofweek.").

