GlideAggregate - Global
O GlideAggregate permite a criação de consultas de agregação de banco de dados.
O GlideAggregate é uma extensão de GlideRecord e fornece consultas de agregação de banco de dados (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN, STDDEV, SUM). Esta funcionalidade pode ser útil ao criar relatórios personalizados ou em cálculos para campos calculados.
Ao usar o 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 de referência (valor de agregação) pode mudar, o resultado pode não ser o que o usuário espera.
GlideAggregate - addAggregate(cadeia de caracteres agregada, cadeia de caracteres nome)
Adiciona um agregado a uma consulta de banco de dados.
| Nome | Tipo | Descrição |
|---|---|---|
| ag | Cadeia de caracteres | Nome de um agregado a ser usado. Valores válidos:
|
| nome | Cadeia de caracteres | Opcional. Nome do campo para agrupar os resultados da agregação. Padrão: nulo |
| Tipo | Descrição |
|---|---|
| vazio |
O exemplo a seguir mostra como usar as 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
Equivalente com escopo
Para usar o método addAggregate() em uma aplicação com escopo, use o método com escopo correspondente: addAggregate()addAggregate().
GlideAggregate - addBizCalendarTrend(cadeia de caracteres fieldName, cadeia de caracteres bizCalendarSysId)
Adiciona tendências por calendário de negócios à consulta agregada. Este método permite que você escolha um campo de data e hora no GlideRecord correspondente e nos registros de grupo com base em um período de tempo do calendário comercial especificado.
| 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 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 desejados. |
| Tipo | Descrição |
|---|---|
| Nenhum |
O exemplo de código a seguir mostra a contagem de registros de incidentes agrupados pelos períodos do calendário comercial de "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)
Adiciona uma consulta codificada a outras consultas que podem ter sido definidas para este agregado.
| Nome | Tipo | Descrição |
|---|---|---|
| consulta | Cadeia de caracteres | Cadeia de caracteres de consulta codificada a ser adicionada ao agregado. |
| Tipo | Descrição |
|---|---|
| vazio |
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
Para usar o método addEncodedQuery() em uma aplicação com escopo, use o método com escopo correspondente: addEncodedQuery()addEncodedQuery().
GlideAggregate - addHaving(cadeia de caracteres nome, operador de cadeia de caracteres, valor de cadeia de caracteres)
Adiciona um elemento "tendo" ao agregado, como selecionar categoria, contagem(*) do grupo de incidentes por categoria TENDO contagem(*) > 5.
| 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". |
| Tipo | Descrição |
|---|---|
| vazio |
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 - addTrend(cadeia de caracteres "fieldName", cadeia de caracteres "timeInterval", "Número de unidades numéricas")
Adiciona uma tendência a um campo. Use uma tendência para mostrar padrões ao longo de um período de tempo.
| 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:
|
| 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 |
| Tipo | Descrição |
|---|---|
| vazio |
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
Para usar o método addTrend() em uma aplicação com escopo, use o método com escopo correspondente: addTrend()addTrend().
GlideAggregate - getAggregate(cadeia de caracteres agregada, cadeia de caracteres nome)
Obtém o valor de um agregado do registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| ag | Cadeia de caracteres | Tipo de agregado. Valores válidos:
|
| nome | Cadeia de caracteres | Nome do campo do qual obter o agregado. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Valor da agregação. Se os valores que estão sendo agregados forem valores de moeda FX, o valor retornado estará no formato<currency_code;currency_value> , como: USD;134.980000 . Nota: Se o campo especificado contiver valores de moeda FX de tipos de moeda mista, o método não poderá agregar os valores e retornará um ponto e vírgula (;). |
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 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
Equivalente com escopo
Para usar o método getAggregate() em uma aplicação com escopo, use o método com escopo correspondente: getAggregate()getAggregate().
GlideAggregate – getQuery()
Recupera a consulta necessária para retornar o agregado atual.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | A consulta. |
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()
Recupera o número de linhas no objeto GlideAggregate.
| Nome | Tipo | Descrição |
|---|---|---|
| nenhum |
| Tipo | Descrição |
|---|---|
| Número | Número de linhas no objeto GlideAggregate. |
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);
}
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.0000Equivalente com escopo
Para usar o método getRowCount() em uma aplicação com escopo, use o método com escopo correspondente: Scoped GlideAggregate - getRowCount().
GlideAggregate - getTotal(cadeia de caracteres agg, cadeia de caracteres nome)
Retorna o número de registros somando um agregado.
| Nome | Tipo | Descrição |
|---|---|---|
| ag | Cadeia de caracteres | Nome de um agregado a ser usado. Valores válidos:
|
| nome | Cadeia de caracteres | Nome do campo a ser agregado. |
| Tipo | Descrição |
|---|---|
| Número | Número de registros. |
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)
Retorna o valor de um campo.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Valor do campo especificado. Retorna nulo se inválido (não faz parte do conjunto de resultados). |
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
Para usar o método getValue() em uma aplicação com escopo, use o método com escopo correspondente: getValue()getValue().
GlideAggregate - groupBy(cadeia de caracteres name)
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.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo. |
| Tipo | Descrição |
|---|---|
| vazio |
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);
}
Equivalente com escopo
Para usar o método groupBy() em uma aplicação com escopo, use o método com escopo correspondente: groupBy()groupBy().
GlideAggregate - orderBy(cadeia de caracteres name)
Ordena os agregados usando o valor do campo especificado. O campo também é adicionado à lista de agrupamento.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo usado para solicitar os agregados. Como alternativa, você pode fornecer uma glidefunction para solicitar os agregados, como |
| Tipo | Descrição |
|---|---|
| vazio |
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
Para usar o método orderBy() em uma aplicação com escopo, use o método com escopo correspondente: orderBy()orderBy().
GlideAggregate - orderByAggregate(cadeia de caracteres agregada, cadeia de caracteres nome)
Ordena os agregados com base no agregado e no campo especificados.
| Nome | Tipo | Descrição |
|---|---|---|
| ag | Cadeia de caracteres | Tipo de agregação. Valores válidos:
|
| fieldName | Cadeia de caracteres | Nome do campo a ser agregado. |
| Tipo | Descrição |
|---|---|
| vazio |
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
Para usar o método orderByAggregate() em uma aplicação com escopo, use o método com escopo correspondente: orderByAggregate()orderByAggregate().
GlideAggregate - consulta ()
Emite a consulta e obtém os resultados.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
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
Para usar o método query() em uma aplicação com escopo, use o método com escopo correspondente: query()query().
GlideAggregate - setAggregateWindow(Number firstRow, Number lastRow)
Limita o número de linhas da tabela a serem incluídas na consulta agregada.
| Nome | Tipo | Descrição |
|---|---|---|
| primeiraLinha | 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. |
| Tipo | Descrição |
|---|---|
| Nenhum |
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
Para usar o método setAggregateWindow() em uma aplicação com escopo, use o método com escopo correspondente: setAggregateWindow()setAggregateWindow().
GlideAggregate - setGroup(Boolean b)
Define se os resultados devem ser agrupados.
| Nome | Tipo | Descrição |
|---|---|---|
| b | Booliano | Sinalizador que indica se os resultados devem ser agrupados. Valores válidos:
|
| Tipo | Descrição |
|---|---|
| vazio |
var ga = new GlideAggregate('incident');
ga.addAggregate('COUNT', 'category');
ga.setGroup(true);
Equivalente com escopo
Para usar o método setGroup() em uma aplicação com escopo, use o método com escopo correspondente: setGroup()setGroup().
GlideAggregate - setIntervalYearIncluded (booliano b)
Define se os resultados devem ser agrupados por ano para tendências de dia da semana. Essas tendências são criadas usando o método addTrend() com o intervalo de tempo dayofweek.
Dependência: GlideAggregate - addTrend('<fieldName> ', 'dayofweek') .
| 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:
Padrão: verdadeiro |
| Tipo | Descrição |
|---|---|
| Nenhum |
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 incluem o ano. Por exemplo, os resultados padrão para quinta-feira incluem 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
Para usar o método setIntervalYearIncluded() em uma aplicação com escopo, use o método com escopo correspondente: setIntervalYearIncluded()setIntervalYearIncluded().