GlideAggregate – Global
GlideAggregate ermöglicht das Erstellen von Datenbank-Zusammenfassungsabfragen.
Die Die GlideAggregate -Klasse ist eine Erweiterung von GlideRecord und bietet Datenbankzusammenfassungsabfragen (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN, STDDEV, SUM). Diese Funktion kann hilfreich sein, wenn Sie angepasste Berichte erstellen oder Berechnungen für berechnete Felder durchführen.
Wenn Sie GlideAggregate in Währungs- oder Preisfeldern verwenden, arbeiten Sie mit dem Referenzwährungswert. Stellen Sie sicher, dass Sie die Zusammenfassungswerte für die Anzeige in die Sitzungswährung des Benutzers konvertieren. Da sich der Umrechnungskurs zwischen dem Währungs- oder Preiswert (angezeigter Wert) und seinem Referenzwährungswert (Zusammenfassungswert) ändern kann, entspricht das Ergebnis möglicherweise nicht den Erwartungen des Benutzers.
GlideAggregate – addAggregate(String agg, String name)
Fügt einer Datenbankabfrage eine Zusammenfassung hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Name einer zu verwendenden Zusammenfassung. Gültige Werte:
|
| Name | Zeichenfolge | Optional. Name des Felds, nach dem die Ergebnisse der Zusammenfassung gruppiert werden sollen. Standard: Null |
| Typ | Beschreibung |
|---|---|
| void |
Das folgende Beispiel zeigt, wie GlideAggregate- Funktionen in der Incident-Tabelle [Incident] verwendet werden.
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(' ');
}
Ausgabe
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
Bereichsbezogenes Äquivalent
Um die addAggregate()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addAggregate()addAggregate().
GlideAggregate – addBizCalendarTrend(String fieldName, String bizCalendarSysId)
Fügt der Zusammenfassungsabfrage Trends nach einem Geschäftskalender hinzu. Mit dieser Methode können Sie ein Datums- und Uhrzeitfeld im entsprechenden GlideRecord auswählen und Datensätze basierend auf einer angegebenen Geschäftskalender-Zeitspanne gruppieren.
| Name | Typ | Beschreibung |
|---|---|---|
| fieldName | Zeichenfolge | Datums- und Uhrzeitfeld im zugehörigen GlideRecord, das verwendet werden soll, um zu bestimmen, in welche Gruppen- oder Kalenderzeitspanne der Datensatz aufgenommen wird. |
| bizCalendarSysId | Zeichenfolge | Sys_id des zu verwendenden Kalenderdatensatzes. Dies ist der Kalender, der die gewünschten Zeitspannen enthält. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt die Anzahl der Incident-Datensätze, gruppiert nach den Zeitspannen des Geschäftskalenders „Monat“.
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'));
}
Ausgabe:
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(String query)
Fügt den anderen Abfragen, die möglicherweise für diese Zusammenfassung festgelegt wurden, eine verschlüsselte Abfrage hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| query | Zeichenfolge | Codierte Abfragezeichenfolge, die der Zusammenfassung hinzugefügt werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
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);
}
Bereichsbezogenes Äquivalent
Um die addEncodedQuery()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addEncodedQuery()addEncodedQuery().
GlideAggregate – addHaving(String name, String operator, String value)
Fügt der Zusammenfassung ein „having“-Element hinzu, z. B. „select category, count(*)“ aus der Incident-Gruppe nach Kategorie. HAVING count(*) > 5.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Zusammenfassen, nach dem gefiltert werden soll. Beispiel: ANZAHL. |
| operator | Zeichenfolge | Operator-Symbol. Zum Beispiel <, >, =, !=. |
| Wert | Zeichenfolge | Wert, nach dem abgefragt werden soll. Beispiel: „5“. |
| Typ | Beschreibung |
|---|---|
| void |
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'));
}
Ausgabe:
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)
Fügt einen Trend für ein Feld hinzu. Verwenden Sie einen Trend, um Muster über einen bestimmten Zeitraum anzuzeigen.
| Name | Typ | Beschreibung |
|---|---|---|
| fieldName | Zeichenfolge | Name des Felds, für das Trends erstellt werden sollen. |
| timeInterval | Zeichenfolge | Zeitintervall für den Trend. Gültige Werte:
|
| numUnits | Nummer | Optional. Nur gültig, wenn timeInterval = Minute. Anzahl der Minuten, die in den Trend aufgenommen werden sollen. Standard: 1 |
| Typ | Beschreibung |
|---|---|
| void |
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'));
}
Ausgabe:
9/2018: 3
10/2018: 8
11/2018: 14
Bereichsbezogenes Äquivalent
Um die addTrend()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addTrend()addTrend().
GlideAggregate – getAggregate(String agg, String name)
Ruft den Wert einer Zusammenfassung aus dem aktuellen Datensatz ab.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Typ der Zusammenfassung. Gültige Werte:
|
| Name | Zeichenfolge | Name des Feldes, aus dem die Zusammenfassung abgerufen werden soll. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wert der Zusammenfassung. Wenn es sich bei den aggregierten Werten um FX-Währungswerte handelt, weist der zurückgegebene Wert das folgende Format auf<currency_code;currency_value> , z. B.: USD;134,980000 . Hinweis: Wenn das angegebene Feld FX-Währungswerte verschiedener Währungstypen enthält, kann die Methode die Werte nicht zusammenfassen und gibt ein Semikolon (;) zurück. |
Dieses Beispiel zeigt, wie Sie die COUNT-Zusammenfassung erhalten.
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;
}
Dieses Beispiel zeigt die Zusammenfassung eines FX-Währungsfelds.
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'));
}
Ausgabe:
*** 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
Bereichsbezogenes Äquivalent
Um die getAggregate()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getAggregate()getAggregate().
GlideAggregate – getQuery()
Ruft die für die Rückgabe der aktuellen Zusammenfassung erforderliche Abfrage ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Die Abfrage. |
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()
Ruft die Anzahl der Zeilen im GlideAggregate-Objekt ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Nummer | Anzahl der Zeilen im GlideAggregate-Objekt. |
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.0000Bereichsbezogenes Äquivalent
Um die getRowCount()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: Scoped GlideAggregate – getRowCount().
GlideAggregate – getTotal(String agg, String name)
Gibt die Anzahl der Datensätze zurück, indem eine Zusammenfassung summiert wird.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Name einer zu verwendenden Zusammenfassung. Gültige Werte:
|
| Name | Zeichenfolge | Name des Feldes, das zusammengefasst werden soll. |
| Typ | Beschreibung |
|---|---|
| Nummer | Anzahl der Datensätze. |
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'));
Ausgabe:
Incidents opened on year - 2015 - 1
Incidents opened on year - 2018 - 5
Incidents opened on year - 2020 - 10
Total Aggregate Value >> 16
GlideAggregate – getValue(String name)
Gibt den Wert eines Felds zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name des Felds. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wert des angegebenen Felds. Gibt NULL zurück, wenn ungültig (nicht Teil des Ergebnissatzes). |
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'));
}
Ausgabe:
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
Bereichsbezogenes Äquivalent
Um die getValue()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: getValue()getValue().
GlideAggregate – groupBy(String name)
Gibt den Namen eines Feldes an, das zur Gruppierung der Zusammenfassungen verwendet werden soll.
Kann mehrfach aufgerufen werden, um mehrere Gruppenfelder festzulegen.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name des Felds. |
| Typ | Beschreibung |
|---|---|
| void |
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);
}
Bereichsbezogenes Äquivalent
Um die groupBy()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: groupBy()groupBy().
GlideAggregate – orderBy(String name)
Ordnet die Zusammenfassungen mit dem Wert des angegebenen Feldes an. Das Feld wird auch der Gruppieren-nach-Liste hinzugefügt.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Name des Feldes, das verwendet wird, um die Aggregate anzuordnen. Alternativ können Sie eine glidefunction angeben, um die Aggregate zu sortieren, z. B. |
| Typ | Beschreibung |
|---|---|
| void |
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);
}
Bereichsbezogenes Äquivalent
Um die orderBy()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: orderBy()orderBy().
GlideAggregate – orderByAggregate(String agg, String name)
Ordnet die Zusammenfassungen basierend auf der angegebenen Zusammenfassung und dem angegebenen Feld an.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Zusammenfassungstyp. Gültige Werte:
|
| fieldName | Zeichenfolge | Name des Feldes, das zusammengefasst werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
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);
}
Bereichsbezogenes Äquivalent
Um die orderByAggregate()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: orderByAggregate()orderByAggregate().
GlideAggregate – query()
Gibt die Abfrage aus und ruft die Ergebnisse ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
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);
Bereichsbezogenes Äquivalent
Um die query()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: query()query().
GlideAggregate – setAggregateWindow(Number firstRow, Number lastRow)
Begrenzt die Anzahl der Zeilen aus der Tabelle, die in die zusammengefasste Abfrage aufgenommen werden sollen.
| Name | Typ | Beschreibung |
|---|---|---|
| firstRow | Nummer | Nullbasierter Index der ersten Zeile, die in die zusammengefasste Abfrage aufgenommen werden soll, einschließlich. |
| letzte Reihe | Nummer | Nullbasierter Index der letzten Zeile, die in die zusammengefasste Abfrage aufgenommen werden soll, ausschließlich. |
| Typ | Beschreibung |
|---|---|
| Keine |
Druckt die Anzahl jeder Kategorie für die ersten zehn Datensätze in der Incident-Tabelle [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]);
}
Ausgabe:
database count: 1
Hardware count: 1
inquiry count: 7
software count: 1
Bereichsbezogenes Äquivalent
Um die setAggregateWindow()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setAggregateWindow()setAggregateWindow().
GlideAggregate – setGroup(Boolean b)
Legt fest, ob die Ergebnisse gruppiert werden sollen.
| Name | Typ | Beschreibung |
|---|---|---|
| b | Boolean | Kennzeichnung, die angibt, ob die Ergebnisse gruppiert werden sollen. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| void |
var ga = new GlideAggregate('incident');
ga.addAggregate('COUNT', 'category');
ga.setGroup(true);
Bereichsbezogenes Äquivalent
Um die setGroup()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setGroup()setGroup().
GlideAggregate – setIntervalYearIncluded(Boolean b)
Legt fest, ob die Ergebnisse für Wochentagstrends nach Jahr gruppiert werden sollen. Diese Trends werden mit der addTrend()- Methode mit dem Zeitintervall dayofweek erstellt.
Abhängigkeit: GlideAggregate – addTrend(')<fieldName> ', 'Wochentag') .
| Name | Typ | Beschreibung |
|---|---|---|
| b | Boolean | Kennzeichnung, die angibt, ob ein Jahr für einen Trend mit einem Wochentag-Zeitintervall enthalten sein soll. Gültige Werte:
Standardwert: true |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Incidents gezählt werden, die in den letzten sechs Monaten erstellt wurden. Die Incidents werden nach Wochentag getrennt, jedoch nicht nach Jahr. Zum Beispiel würden die Standardergebnisse für Donnerstag das Jahr enthalten, z. B. Donnerstag/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'))};
Ausgabe:
Sunday: 1
Monday: 15
Tuesday: 1
Wednesday: 7
Thursday: 16
Saturday: 1
Bereichsbezogenes Äquivalent
Um die setIntervalYearIncluded()- Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: setIntervalYearIncluded()setIntervalYearIncluded().