---
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 - com escopo

# GlideAggregate - com escopo {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 14 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.  
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 com escopo - GlideAggregate(cadeia de caracteres "tableName") {#ariaid-title2}

Cria um objeto GlideAggregate na tabela especificada.
{#r_ScopedGlideAggregateGlideAggregate_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| tableName | Cadeia de caracteres | Nome da tabela. |
[Tabela 1. Parâmetros]

{#r_ScopedGlideAggregateGlideAggregate_String__table_vy2_525_jq}  

    var count = new GlideAggregate('incident');

## GlideAggregate com escopo - addAggregate(cadeia de caracteres agg, cadeia de caracteres name) {#ariaid-title3}

Adiciona um agregado a uma consulta ao banco de dados.
{#r_ScopedGlideAggregateAddAggregate_String_String__id_zgs_fl2_4nb__entry__3}{#r_ScopedGlideAggregateAddAggregate_String_String__agg-GlideAgg-row}

| 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. Nome do campo pelo qual agrupar os resultados da agregação. Padrão: nulo |
[Tabela 2. Parâmetros]

{#r_ScopedGlideAggregateAddAggregate_String_String__id_zgs_fl2_4nb} {#r_ScopedGlideAggregateAddAggregate_String_String__table_qpt_3f5_jq1__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 3. Retorna]

{#r_ScopedGlideAggregateAddAggregate_String_String__table_qpt_3f5_jq1}  
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

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

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

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

{#r_ScopedGlideAggregateAddEncodedQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddEncodedQuery_String__table_qpt_3f5_jq1__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 5. Retorna]

{#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 com escopo - addQuery (nome da cadeia de caracteres, operador de cadeia de caracteres, valor de cadeia de caracteres) {#ariaid-title5}

Adiciona uma consulta ao agregado.
{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Consulta a ser adicionada. |
| operador | Cadeia de caracteres | Operador da consulta. |
| valor | Cadeia de caracteres | Lista de valores a serem incluídos na consulta. |
[Tabela 6. Parâmetros]

{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddQuery_String_String_String__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| GlideQueryCondition | Condição de consulta. |
[Tabela 7. Retorna]

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

Saída:

    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 com escopo - addNotNullQuery(String fieldName) {#ariaid-title6}

Adiciona uma consulta não nula ao agregado.
{#r_ScopedGlideAggregateAddNotNullQuery_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome do campo | Cadeia de caracteres | Nome do campo. |
[Tabela 8. Parâmetros]

{#r_ScopedGlideAggregateAddNotNullQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddNotNullQuery_String__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| GlideQueryCondition | Condição de consulta com escopo. |
[Tabela 9. Retorna]

{#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 com escopo - addNullQuery(String fieldName) {#ariaid-title7}

Adiciona uma consulta nula ao agregado.
{#r_ScopedGlideAggregateAddNullQuery_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fieldName | Cadeia de caracteres | Nome do campo. |
[Tabela 10. Parâmetros]

{#r_ScopedGlideAggregateAddNullQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddNullQuery_String__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| GlideQueryCondition | A condição de consulta com escopo. |
[Tabela 11. Retorna]

{#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 com escopo - addTrend(cadeia de caracteres fieldName, cadeia de caracteres timeInterval, Number numUnits) {#ariaid-title8}

Adiciona uma tendência para um campo especificado. 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 com escopo - setIntervalYearIncluded(Booliano b)](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.").
{#r_ScopedGlideAggAddTrend_S_S__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_ScopedGlideAggAddTrend_S_S__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 12. Parâmetros]

{#r_ScopedGlideAggAddTrend_S_S__table_tlk_cdk_ws} {#r_ScopedGlideAggAddTrend_S_S__table_frl_fqd_3z__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 13. Retorna]

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

Saída:

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

## GlideAggregate com escopo - getAggregate(cadeia de caracteres agg, cadeia de caracteres name) {#ariaid-title9}

Retorna o valor de um agregado do registro atual.
{#r_ScopedGlideAggregateGetAggregate_String_String__table_vy2_525_jq__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 no qual a agregação será executada. |
[Tabela 14. Parâmetros]

{#r_ScopedGlideAggregateGetAggregate_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGetAggregate_String_String__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | O 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 15. Retorna]

{#r_ScopedGlideAggregateGetAggregate_String_String__table_qpt_3f5_jq}  
Mostra uma agregação que retorna o número de registros na tabela Incidente.

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

Saída: número de incidentes: 63.  
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

## GlideAggregate com escopo -- getAggregateEncodedQuery() {#ariaid-title10}

Obtém a consulta necessária para retornar o agregado atual.
{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_vy2_535_jq__entry__3}

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

{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Consulta codificada para obter o agregado. |
[Tabela 17. Retorna]

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

Saída:

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

## GlideAggregate com escopo -- getEncodedQuery() {#ariaid-title11}

Recupera a consulta codificada.
{#r_ScopedGlideAggregateGetEncodedQuery__table_vy2_535_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nenhum |   |   |
[Tabela 18. Parâmetros]

{#r_ScopedGlideAggregateGetEncodedQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateGetEncodedQuery__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Consulta codificada. |
[Tabela 19. Retorna]

{#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());

Saída:

    ORDERBYcategory^GROUPBYcategory

## GlideAggregate com escopo - getRowCount() {#ariaid-title12}

Recupera o número de linhas no objeto GlideAggregate.
{#r_ScopedGlideAggregateGetRowCount__table_vy2_535_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nenhum |   |   |
[Tabela 20. Parâmetros]

{#r_ScopedGlideAggregateGetRowCount__table_vy2_535_jq} {#r_ScopedGlideAggregateGetRowCount__table_qpt_3f5_jq__entry__2}

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

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

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

## GlideAggregate com escopo -- getTableName() {#ariaid-title13}

Recupera o nome da tabela associada a este objeto GlideAggregate.
{#r_ScopedGlideAggregateGetTableName__table_vc2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nenhum |   |   |
[Tabela 22. Parâmetros]

{#r_ScopedGlideAggregateGetTableName__table_vc2_525_jq} {#r_ScopedGlideAggregateGetTableName__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Nome da tabela. |
[Tabela 23. Retorna]

{#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 com escopo - getValue(String name) {#ariaid-title14}

Retorna o valor do campo especificado.
{#r_ScopedGlideAggregateGetValue_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome do campo na tabela atual a ser retornado. |
[Tabela 24. Parâmetros]

{#r_ScopedGlideAggregateGetValue_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGetValue_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 25. Retorna]

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

Saída:

    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 com escopo - groupBy(String name) {#ariaid-title15}

Fornece o nome de um campo a ser usado no agrupamento de agregados.
Pode ser chamado várias vezes para definir vários campos de grupo.
{#r_ScopedGlideAggregateGroupBy_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome do campo. |
[Tabela 26. Parâmetros]

{#r_ScopedGlideAggregateGroupBy_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGroupBy_String__table_qpt_3f5_jq1__entry__2}

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

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

Saída:

    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 com escopo - hasNext() {#ariaid-title16}

Determina se há mais registros no objeto GlideAggregate.
{#r_ScopedGlideAggregateHasNext__table_vy2_535_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nenhum |   |   |
[Tabela 28. Parâmetros]

{#r_ScopedGlideAggregateHasNext__table_vy2_535_jq} {#r_ScopedGlideAggregateHasNext__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se há mais resultados no conjunto de consultas. Valores possíveis: * verdadeiro: há mais resultados no conjunto de consultas. * falso: não há mais resultados no conjunto de consultas. {#r_ScopedGlideAggregateHasNext__ul_bkh_hhc_dtb} |
[Tabela 29. Retorna]

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

Saída:

    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 com escopo - next() {#ariaid-title17}

Move para o próximo registro no GlideAggregate.
{#r_ScopedGlideAggregateNext__table_vy2_535_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nenhum |   |   |
[Tabela 30. Parâmetros]

{#r_ScopedGlideAggregateNext__table_vy2_535_jq} {#r_ScopedGlideAggregateNext__table_qpt_3f5_jq__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se há mais resultados no conjunto de consultas. Valores possíveis: * verdadeiro: há mais resultados no conjunto de consultas. * falso: não há mais resultados no conjunto de consultas. {#r_ScopedGlideAggregateNext__ul_bkh_hhc_dtb} |
[Tabela 31. Retorna]

{#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 com escopo - orderBy(String name) {#ariaid-title18}

Ordena os agregados usando o valor do campo especificado. O campo também é adicionado à lista agrupar por.
{#r_ScopedGlideAggregateOrderBy_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome do campo pelo qual os agregados serão ordenados. Como alternativa, você pode fornecer uma glidefunction para solicitar os agregados, como `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 32. Parâmetros]

{#r_ScopedGlideAggregateOrderBy_String__table_vy2_525_jq} {#r_ScopedGlideAggregateOrderBy_String__table_qpt_3f5_jq1__entry__2}

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

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

Saída:

    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 com escopo - orderByAggregate(cadeia de caracteres agg, cadeia de caracteres fieldName) {#ariaid-title19}

Ordena os agregados com base no agregado e no campo especificados.
{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_ikq_hwt_vr__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| agg | Cadeia de caracteres | Tipo de agregação. |
| fieldName | Cadeia de caracteres | Nome do campo a ser agregado. |
[Tabela 34. Parâmetros]

{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_ikq_hwt_vr} {#r_ScopedGlideAggregateOrderByAggregate_String_String__table_jkq_hwt_vr__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 35. Retorna]

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

Saída:

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

## GlideAggregate com escopo - orderByDesc(String name) {#ariaid-title20}

Classifica os agregados em ordem decrescente com base no campo especificado. O campo também será adicionado à lista agrupar por.
{#r_ScopedGlideAggregateOrderByDesc_String__table_vy2_525_jq__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nome | Cadeia de caracteres | Nome do campo. |
[Tabela 36. Parâmetros]

{#r_ScopedGlideAggregateOrderByDesc_String__table_vy2_525_jq} {#r_ScopedGlideAggregateOrderByDesc_String__table_qpt_3f5_jq1__entry__2}

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

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

Saída:

    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 com escopo - query() {#ariaid-title21}

Emite a consulta e obtém os resultados.
{#r_ScopedGlideAggregateQuery__table_vy2_535_jq__entry__3}

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

{#r_ScopedGlideAggregateQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateQuery__table_qpt_3f5_jq1__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 39. Retorna]

{#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 com escopo - setAggregateWindow(Number firstRow, Number lastRow) {#ariaid-title22}

Limita o número de linhas da tabela a serem incluídas na consulta agregada.
{#ScopedGlAgg-setAggregateWindow_N_N__section_tjk_kfm_gtb__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 40. Parâmetros]

{#ScopedGlAgg-setAggregateWindow_N_N__table_orv_jcm_gtb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 41. Retorna]

{#ScopedGlAgg-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

## GlideAggregate com escopo - setGroup(Booliano b) {#ariaid-title23}

Define se os resultados de retorno devem ser agrupados.
{#r_ScopedGlideAggregateSetGroup_Boolean__table_w24_dxt_vr__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_ScopedGlideAggregateSetGroup_Boolean__ul_ylw_phc_dtb} |
[Tabela 42. Parâmetros]

{#r_ScopedGlideAggregateSetGroup_Boolean__table_w24_dxt_vr} {#r_ScopedGlideAggregateSetGroup_Boolean__table_x24_dxt_vr__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 43. Retorna]

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

Saída:

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

## GlideAggregate com escopo - setIntervalYearIncluded(Booliano b) {#ariaid-title24}

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 com escopo - 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.")\<fieldName\> ', 'dia da semana') .
{#ScopedGlAgg-setIntervalYearInclu_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. {#ScopedGlAgg-setIntervalYearInclu_B__ul_uz2_dph_gzb} Padrão: verdadeiro |
[Tabela 44. Parâmetros]

{#ScopedGlAgg-setIntervalYearInclu_B__table_orv_jcm_gtb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 45. Retorna]

{#ScopedGlAgg-setIntervalYearInclu_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


