GlideAggregate - Global
GlideAggregate permet de créer des requêtes d’agrégation de base de données.
Le La classe GlideAggregate est une extension de GlideRecord et fournit des requêtes d’agrégation de base de données (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN, STDDEV, SUM). Cette fonctionnalité peut être utile lors de la création de rapports personnalisés ou dans les calculs de champs calculés.
Lorsque vous utilisez GlideAggregate sur des champs de devise ou de prix, vous travaillez avec la valeur de devise de référence. Assurez-vous de convertir les valeurs agrégées en devise de la session de l’utilisateur pour l’affichage. Étant donné que le taux de conversion entre la devise ou la valeur de prix (valeur affichée) et sa valeur de devise de référence (valeur d’agrégation) peut changer, le résultat peut ne pas correspondre aux attentes de l’utilisateur.
GlideAggregate - addAggregate(String agg, String name)
Ajoute un agrégat à une requête de base de données.
| Nom | Type | Description |
|---|---|---|
| Agrégation | Chaîne | Nom d’un agrégat à utiliser. Valeurs valides :
|
| nom | Chaîne | Facultatif. Nom du champ par lequel regrouper les résultats de l’agrégation. Valeur par défaut : Null |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment utiliser les fonctions GlideAggregate sur la table Incident [incident].
var incidentGA = new GlideAggregate('incident');
incidentGA.groupBy('category');
incidentGA.orderByAggregate('COUNT', 'sys_mod_count');
incidentGA.addAggregate('AVG', 'sys_mod_count');
incidentGA.addAggregate('COUNT', 'sys_mod_count');
incidentGA.addAggregate('GROUP_CONCAT', 'sys_mod_count');
incidentGA.addAggregate('GROUP_CONCAT_DISTINCT', 'sys_mod_count');
incidentGA.addAggregate('MAX', 'sys_mod_count');
incidentGA.addAggregate('MIN', 'sys_mod_count');
incidentGA.addAggregate('STDDEV', 'sys_mod_count');
incidentGA.addAggregate('SUM', 'sys_mod_count');
incidentGA.query();
while (incidentGA.next()) {
gs.info('CATEGORY: ' + incidentGA.getValue('category'));
gs.info('AVG: ' + incidentGA.getAggregate('AVG', 'sys_mod_count'));
gs.info('COUNT: ' + incidentGA.getAggregate('COUNT', 'sys_mod_count'));
gs.info('GROUP_CONCAT: ' + incidentGA.getAggregate('GROUP_CONCAT', 'sys_mod_count'));
gs.info('GROUP_CONCAT_DISTINCT: ' + incidentGA.getAggregate('GROUP_CONCAT_DISTINCT', 'sys_mod_count'));
gs.info('MAX: ' + incidentGA.getAggregate('MAX', 'sys_mod_count'));
gs.info('MIN: ' + incidentGA.getAggregate('MIN', 'sys_mod_count'));
gs.info('STDDEV: ' + incidentGA.getAggregate('STDDEV', 'sys_mod_count'));
gs.info('SUM: ' + incidentGA.getAggregate('SUM', 'sys_mod_count'));
gs.info(' ');
}
Sortie.
CATEGORY: inquiry
AVG: 8.42424242424242424242424242424242424242E00
COUNT: 33
GROUP_CONCAT: 0,0,0,0,1,2,2,4,4,4,5,5,5,6,6,6,6,6,6,6,6,7,8,8,8,8,9,15,15,19,32,33,36
GROUP_CONCAT_DISTINCT: 0,1,2,4,5,6,7,8,9,15,19,32,33,36
MAX: 36
MIN: 0
STDDEV: 9.15843294125113629932710147135171494439E00
SUM: 278
CATEGORY: software
AVG: 21
COUNT: 13
GROUP_CONCAT: 3,4,5,5,6,7,9,10,10,11,14,94,95
GROUP_CONCAT_DISTINCT: 3,4,5,6,7,9,10,11,14,94,95
MAX: 95
MIN: 3
STDDEV: 3.27693962918655755532970326989852794087E01
SUM: 273
CATEGORY: Hardware
AVG: 6.8
COUNT: 10
GROUP_CONCAT: 2,5,5,6,6,6,7,7,9,15
GROUP_CONCAT_DISTINCT: 2,5,6,7,9,15
MAX: 15
MIN: 2
STDDEV: 3.39280283999985933622820108982884699755E00
SUM: 68
CATEGORY: network
AVG: 18
COUNT: 5
GROUP_CONCAT: 3,12,17,21,37
GROUP_CONCAT_DISTINCT: 3,12,17,21,37
MAX: 37
MIN: 3
STDDEV: 1.25698050899765347157025586536136512302E01
SUM: 90
CATEGORY:
AVG: 9.5
COUNT: 4
GROUP_CONCAT: 8,8,10,12
GROUP_CONCAT_DISTINCT: 8,10,12
MAX: 12
MIN: 8
STDDEV: 1.91485421551267621995020382273964310607E00
SUM: 38
CATEGORY: database
AVG: 29
COUNT: 2
GROUP_CONCAT: 8,50
GROUP_CONCAT_DISTINCT: 8,50
MAX: 50
MIN: 8
STDDEV: 2.969848480983499602483546320840365965E01
SUM: 58
Équivalent dans le champ d’application
Pour utiliser la méthode addAggregate() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addAggregate()addAggregate().
GlideAggregate - addBizCalendarTrend(String fieldName, String bizCalendarSysId)
Ajoute la tendance par calendrier d’entreprise à la requête d’agrégat. Cette méthode vous permet de choisir un champ de date et d’heure dans le GlideRecord correspondant et de regrouper les enregistrements en fonction d’une période de calendrier d’entreprise spécifiée.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Champ de date et d’heure dans le GlideRecord associé à utiliser pour déterminer l’intervalle de temps de groupe ou de calendrier dans lequel l’enregistrement sera inclus. |
| bizCalendarSysId | Chaîne | Sys_id de l’enregistrement de calendrier à utiliser. Il s’agit du calendrier qui contient les périodes souhaitées. |
| Type | Description |
|---|---|
| Néant |
L’exemple de code suivant montre le nombre d’enregistrements d’incidents regroupés par périodes de calendrier professionnel « Mois ».
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'));
}
Sortie :
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(Requête de chaîne)
Ajoute une requête codée aux autres requêtes qui ont pu être définies pour cet agrégat.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Chaîne de requête codée à ajouter à l’agrégat. |
| Type | Description |
|---|---|
| nul |
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);
}
Équivalent dans le champ d’application
Pour utiliser la méthode addEncodedQuery() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addEncodedQuery()addEncodedQuery().
GlideAggregate - addHaving(Nom de chaîne, Opérateur de chaîne, Valeur de chaîne)
Ajoute un élément « ayant » à l’agrégat, tel que select category, count(*) à partir du groupe d’incidents par catégorie HAVING count(*) > 5.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Agréger pour filtrer. Par exemple, COUNT. |
| opérateur | Chaîne | Symbole de l’opérateur. Par exemple, <, >, =, !=. |
| valide | Chaîne | Valeur à interroger. Par exemple, « 5 ». |
| Type | Description |
|---|---|
| nul |
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'));
}
Sortie :
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(String fieldName, String timeInterval, Number numUnits)
Ajoute une tendance pour un champ. Utilisez une tendance pour afficher des modèles sur une période donnée.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom du champ pour lequel la tendance doit se produire. |
| intervalle de temps | Chaîne | Intervalle de temps pour la tendance. Valeurs valides :
|
| Unités num | Numéro | Facultatif. Valide uniquement quand timeInterval = minute. Nombre de minutes à inclure dans la tendance. Valeur par défaut : 1 |
| Type | Description |
|---|---|
| nul |
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'));
}
Sortie :
9/2018: 3
10/2018: 8
11/2018: 14
Équivalent dans le champ d’application
Pour utiliser la méthode addTrend() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addTrend()addTrend().
GlideAggregate - getAggregate(String agg, nom de chaîne)
Obtient la valeur d’un agrégat à partir de l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| Agrégation | Chaîne | Type de l’agrégat. Valeurs valides :
|
| nom | Chaîne | Nom du champ à partir duquel obtenir l’agrégat. |
| Type | Description |
|---|---|
| Chaîne | Valeur de l’agrégation. Si les valeurs agrégées sont des valeurs de devise FX, la valeur renvoyée est au format <currency_code. currency_value>, tels que : USD ; N° 134.980000. Remarque : Si le champ spécifié contient des valeurs de devise FX de types de devises mixtes, la méthode n’est pas en mesure d’agréger les valeurs et renvoie un point-virgule (;). |
Cet exemple montre comment obtenir l’agrégat 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;
}
Cet exemple montre l’agrégation d’un champ Devise FX.
var ga = new GlideAggregate('laptop_tracker');
ga.addAggregate('SUM', 'cost');
ga.groupBy('name');
ga.query();
while (ga.next()) {
gs.info('Aggregate results ' + ga.getValue('name') + ' => ' + ga.getAggregate('SUM', 'cost'));
}
Sortie :
*** Script: Aggregate results Apple MacBook Air => USD;1651.784280000000
*** Script: Aggregate results Apple MacBook Pro => USD;1651.784280000000
*** Script: Aggregate results Dell XPS => USD;470.852672000000
*** Script: Aggregate results LG =>
*** Script: Aggregate results Samsung Galaxy => USD;225.320000000000
*** Script: Aggregate results Surface3 => USD;2895.560369520000
*** Script: Aggregate results Toshiba => USD;9385.202875800000
Équivalent dans le champ d’application
Pour utiliser la méthode getAggregate() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getAggregate()getAggregate().
GlideAggregate : getQuery()
Récupère la requête nécessaire pour renvoyer l’agrégat actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | La requête. |
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()
Récupère le nombre de lignes dans l’objet GlideAggregate.
| Nom | Type | Description |
|---|---|---|
| aucun |
| Type | Description |
|---|---|
| Numéro | Nombre de lignes de l’objet 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.0000Équivalent dans le champ d’application
Pour utiliser la méthode getRowCount() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : Scoped GlideAggregate - getRowCount().
GlideAggregate : getTotal(String agg, nom de chaîne)
Renvoie le nombre d’enregistrements en additionnant un agrégat.
| Nom | Type | Description |
|---|---|---|
| Agrégation | Chaîne | Nom d’un agrégat à utiliser. Valeurs valides :
|
| nom | Chaîne | Nom du champ à regrouper. |
| Type | Description |
|---|---|
| Numéro | Nombre d’enregistrements. |
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'));
Sortie :
Incidents opened on year - 2015 - 1
Incidents opened on year - 2018 - 5
Incidents opened on year - 2020 - 10
Total Aggregate Value >> 16
GlideAggregate : getValue(nom de chaîne)
Renvoie la valeur d’un champ.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ. |
| Type | Description |
|---|---|
| Chaîne | Valeur du champ spécifié. Renvoie null si elle n’est pas valide (ne fait pas partie de l’ensemble de résultats). |
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'));
}
Sortie :
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
Équivalent dans le champ d’application
Pour utiliser la méthode getValue() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getValue()getValue().
GlideAggregate – groupBy(nom de chaîne)
Fournit le nom d’un champ à utiliser pour regrouper les agrégats.
Peut être appelé de nombreuses fois pour définir plusieurs champs de groupe.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ. |
| Type | Description |
|---|---|
| nul |
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);
}
Équivalent dans le champ d’application
Pour utiliser la méthode groupBy() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : groupBy()groupBy().
GlideAggregate : orderBy(nom de chaîne)
Trie les agrégats en fonction de la valeur du champ spécifié. Le champ est également ajouté à la liste Grouper par.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ utilisé pour trier les agrégats. Vous pouvez également fournir une fonction glidepour ordonner les agrégats, telle que |
| Type | Description |
|---|---|
| nul |
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);
}
Équivalent dans le champ d’application
Pour utiliser la méthode orderBy() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : orderBy()orderBy().
GlideAggregate - orderByAggregate(String agg, String name)
Trie les agrégats en fonction de l’agrégat et du champ spécifiés.
| Nom | Type | Description |
|---|---|---|
| Agrégation | Chaîne | Type d’agrégation. Valeurs valides :
|
| Fieldname | Chaîne | Nom du champ à regrouper. |
| Type | Description |
|---|---|
| nul |
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);
}
Équivalent dans le champ d’application
Pour utiliser la méthode orderByAggregate() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : orderByAggregate()orderByAggregate().
GlideAggregate - query()
Émet la requête et obtient les résultats.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
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);
Équivalent dans le champ d’application
Pour utiliser la méthode query() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : query()query().
GlideAggregate : setAggregateWindow(Numéro firstRow, Number lastRow)
Limite le nombre de lignes de la table à inclure dans la requête d’agrégat.
| Nom | Type | Description |
|---|---|---|
| Firstrow | Numéro | Index de base zéro de la première ligne à inclure dans la requête d’agrégat, inclus. |
| Lastrow | Numéro | Index de base zéro de la dernière ligne à inclure dans la requête d’agrégat, exclusif. |
| Type | Description |
|---|---|
| Néant |
Imprime le nombre de chaque catégorie pour les dix premiers enregistrements de la table Incident [incident].
var incidentGroup = new GlideAggregate('incident');
incidentGroup.addAggregate('COUNT', 'category');
incidentGroup.setAggregateWindow(0, 10);
incidentGroup.query();
while (incidentGroup.next()) {
var incidentCount = incidentGroup.getAggregate('COUNT', 'category');
gs.info('{0} count: {1}', [incidentGroup.getValue('category'), incidentCount]);
}
Sortie :
database count: 1
Hardware count: 1
inquiry count: 7
software count: 1
Équivalent dans le champ d’application
Pour utiliser la méthode setAggregateWindow() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : setAggregateWindow()setAggregateWindow().
GlideAggregate : setGroup(Booléen b)
Définit s’il faut regrouper les résultats.
| Nom | Type | Description |
|---|---|---|
| b | Booléen | Marqueur indiquant si les résultats doivent être regroupés. Valeurs valides :
|
| Type | Description |
|---|---|
| nul |
var ga = new GlideAggregate('incident');
ga.addAggregate('COUNT', 'category');
ga.setGroup(true);
Équivalent dans le champ d’application
Pour utiliser la méthode setGroup() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : setGroup()setGroup().
GlideAggregate : setIntervalYearIncluded(Booléen b)
Définit s’il faut regrouper les résultats par année pour les tendances du jour de la semaine. Ces tendances sont créées à l’aide de la méthode addTrend() avec l’intervalle de dayofweek temps.
Dépendance : GlideAggregate - addTrend('<fieldName>', 'dayofweek').
| Nom | Type | Description |
|---|---|---|
| b | Booléen | Marqueur indiquant s’il faut inclure une année pour une tendance avec un intervalle de temps du jour de la semaine. Valeurs valides :
Valeur par défaut : true |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant montre comment compter les incidents créés au cours des six derniers mois. Les incidents sont séparés par jour de la semaine, mais n’incluent pas l’année. Par exemple, les résultats par défaut pour le jeudi incluraient l’année, par exemple Jeudi/2023 : 16.
var incidentGroup = new GlideAggregate('incident');
incidentGroup.addEncodedQuery("sys_created_onRELATIVEGT@month@ago@6");
incidentGroup.addTrend('sys_created_on', 'dayofweek');
incidentGroup.addAggregate('COUNT');
incidentGroup.setIntervalYearIncluded(false);
incidentGroup.query();
while (incidentGroup.next()) {
gs.info(incidentGroup.getValue('timeref') + ': ' + incidentGroup.getAggregate('COUNT'))};
Sortie :
Sunday: 1
Monday: 15
Tuesday: 1
Wednesday: 7
Thursday: 16
Saturday: 1
Équivalent dans le champ d’application
Pour utiliser la méthode setIntervalYearIncluded() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : setIntervalYearIncluded()setIntervalYearIncluded().