GlideAggregat – Global
Die GlideAggregat API ermöglicht das Erstellen von Datenbankzusammenfassungsabfragen.
Die GlideAggregat Klasse ist eine Erweiterung von GlideRecord Klasse und bietet Datenbankzusammenfassung (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN., STD., SUMME) ABFRAGEN. Diese Funktionalität kann beim Erstellen anwenderdefinierter Berichte oder bei Berechnungen für berechnete Felder hilfreich sein.
Wenn Sie verwenden GlideAggregat Methoden für Währungs- oder Preisfelder verwenden Sie den Referenzwährungswert. Stellen Sie sicher, dass Sie die Aggregatwerte zur Anzeige in die Sitzungswährung des Anwenders konvertieren. Weil der Wechselkurs zwischen der Währung oder dem Preiswert (angezeigter Wert) und der Referenz Währung Der Wert (Zusammenfassungswert) kann sich ändern, das Ergebnis ist möglicherweise nicht das, was der Anwender erwartet.
Um diese API zum Erstellen dynamischer Attribute zu verwenden, müssen Sie über die Rolle „Dynamic_Schema_Writer“ verfügen. Zum Lesen dynamischer Daten mit dieser API müssen Sie über die Rolle „Dynamic_Schema_Reader“ verfügen.
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.
GlideAggregate – addAggregate(Zeichenfolgenagg, Zeichenfolgenname)
Fügt einer Datenbankabfrage ein Aggregat hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Name eines zu verwendenden Aggregats. Gültige Werte:
|
| name | Zeichenfolge | Optional für Feldname. Name des Felds oder Pfad zu einem Attribut in einem dynamischen Attributspeicher, nach dem die Ergebnisse der Zusammenfassung gruppiert werden sollen. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema. Standard: Null |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt die Verwendung GlideAggregat Funktionen in der Tabelle „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(' ');
}
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
Das folgende Beispiel zeigt, wie diese Methode mit einem Attribut in einem dynamischen Attributspeicher aufgerufen wird.
var ga_Inc = new GlideAggregate('incident');
ga_Inc.groupBy('inc_dynamic_schema->cars->make');
ga_Inc.addAggregate('AVG', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MIN', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MAX', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('SUM', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('STDDEV', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.query();
while (ga_Inc.next()) {
gs.info(gr_Inc.getValue('inc_dynamic_schema->cars->make'));
gs.info('AVG: ' + ga_Inc.getAggregate('AVG', 'inc_dynamic_schema->cars->cost'));
gs.info('MAX: ' + ga_Inc.getAggregate('MAX', 'inc_dynamic_schema->cars->cost'));
gs.info('MIN: ' + ga_Inc.getAggregate('MIN', 'inc_dynamic_schema->cars->cost'));
gs.info('SUM: ' + ga_Inc.getAggregate('SUM', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT: ' + ga_Inc.getAggregate('COUNT', 'inc_dynamic_schema->cars->cost'));
gs.info('STDDEV: ' + ga_Inc.getAggregate('STDDEV', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT: ' + ga_Inc.getAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT_DISTINCT: ' + ga_Inc.getAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT(DISTINCT: ' + ga_Inc.getAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info(' ');
}
Ausgabe:
*** Script: BMW
*** Script: AVG: 31852.066666666667
*** Script: MAX: 49182
*** Script: MIN: 16544
*** Script: SUM: 477781
*** Script: COUNT: 15
*** Script: STDDEV: 10376.50218706
*** Script: GROUP_CONCAT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: GROUP_CONCAT_DISTINCT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: COUNT(DISTINCT: 15
*** Script:
*** Script: Ford
*** Script: AVG: 31520.090909090909
*** Script: MAX: 47408
*** Script: MIN: 16080
*** Script: SUM: 346721
*** Script: COUNT: 11
*** Script: STDDEV: 11355.75551388
*** Script: GROUP_CONCAT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: GROUP_CONCAT_DISTINCT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: COUNT(DISTINCT: 11
*** Script:
*** Script: Honda
*** Script: AVG: 31972.750000000000
*** Script: MAX: 49187
*** Script: MIN: 15208
*** Script: SUM: 511564
*** Script: COUNT: 16
*** Script: STDDEV: 10240.67632207
*** Script: GROUP_CONCAT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: GROUP_CONCAT_DISTINCT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: COUNT(DISTINCT: 16
*** Script:
*** Script: Lexus
*** Script: AVG: 29841.250000000000
*** Script: MAX: 48406
*** Script: MIN: 15517
*** Script: SUM: 238730
*** Script: COUNT: 8
*** Script: STDDEV: 12073.56647214
*** Script: GROUP_CONCAT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: GROUP_CONCAT_DISTINCT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: COUNT(DISTINCT: 8
*** Script:
*** Script: Tesla
*** Script: AVG: 30790.000000000000
*** Script: MAX: 45032
*** Script: MIN: 16724
*** Script: SUM: 431060
*** Script: COUNT: 14
*** Script: STDDEV: 8510.068136760580
*** Script: GROUP_CONCAT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: GROUP_CONCAT_DISTINCT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: COUNT(DISTINCT: 14
*** Script:
*** Script: Toyota
*** Script: AVG: 32115.444444444444
*** Script: MAX: 49418
*** Script: MIN: 15188
*** Script: SUM: 289039
*** Script: COUNT: 9
*** Script: STDDEV: 12120.76776767
*** Script: GROUP_CONCAT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: GROUP_CONCAT_DISTINCT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: COUNT(DISTINCT: 9
*** Script:
Bereichsbezogenes Äquivalent
Zur Verwendung von AddAggregat() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: AddAggregat() .
GlideAggregate – addBizCalendarTrend(Zeichenfolge fieldName, Zeichenfolge bizCalendarSysId)
Fügt der Aggregatabfrage Trends nach 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äftskalenderzeitspanne gruppieren.
| Name | Typ | Beschreibung |
|---|---|---|
| fieldName | Zeichenfolge | Datums- und Uhrzeitfeld im zugehörigen GlideRecord, das verwendet werden soll, um zu bestimmen, in welcher Gruppe 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 (Zeichenfolgenabfrage)
Fügt den anderen Abfragen, die möglicherweise für dieses Aggregat festgelegt wurden, eine codierte Abfrage hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| query | Zeichenfolge | Codierte Abfragezeichenfolge, die der Zusammenfassung hinzugefügt werden soll. |
| Typ | Beschreibung |
|---|---|
| Keine |
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
Zur Verwendung von AddEncodedQuery() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: AddEncodedQuery() .
GlideAggregate – addHaving(Zeichenfolgenname, Zeichenfolgenoperator, Zeichenfolgenwert)
Fügt dem Aggregat ein „Haben“-Element hinzu, z. B. „Kategorie auswählen“, „count(*)“ aus der Incident-Gruppe nach Kategorie MIT „count(*) > 5“.
| Name | Typ | Beschreibung |
|---|---|---|
| name | Zeichenfolge | Aggregat, nach dem gefiltert werden soll. Beispiel: ANZAHL. |
| operator | Zeichenfolge | Operator-Symbol. Beispiel: <, >, =, !=. |
| Wert | Zeichenfolge | Wert, der abgefragt werden soll. Beispiel: „5“. |
| Typ | Beschreibung |
|---|---|
| Keine |
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 – addHaving(String aggName, String fieldName, Zeichenfolgenoperator, Zeichenfolgenwert)
Fügt dem Aggregat ein „Haben“-Element hinzu, z. B. „Kategorie auswählen“, „count(*)“ aus der Incident-Gruppe nach Kategorie MIT „count(*) > 5“. Mit dieser Implementierung der Methode können Sie ein bestimmtes Feld in einer Tabelle oder ein dynamisches Attribut angeben, auf das reagiert werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| AggName | Zeichenfolge | Aggregat, nach dem gefiltert werden soll. Beispiel: ANZAHL. |
| fieldName | Zeichenfolge | Feldname oder Pfad zu einem Attribut in einem dynamischen Attributspeicher. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema. |
| operator | Zeichenfolge | Operator-Symbol. Beispiel: <, >, =, !=. |
| Wert | Zeichenfolge | Wert, der abgefragt werden soll. Beispiel: „5“. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie die doppelten Seriennummern in der cmdb-Tabelle anhand eines Feldnamens in identifiziert werden AddHaving() Methodenaufruf.
function getDupes(tableName, dpField) {
var ga = new GlideAggregate(tableName);
ga.addAggregate('COUNT', dpField); // Aggregate to count values in whatever field is passed as dpField
ga.addHaving('COUNT', dpField, '>', '1'); // Returns only records having more than one active instance of dpField
ga.query();
var arDupes = new Array(); // Build array to push the results into
while (ga.next()) {
arDupes.push(ga.getValue(dpField)); // Push the value of the dupe field to the array
}
return arDupes;
}
var tableName = "cmdb";
var dpField = "serial_number";
gs.print(getDupes(tableName, dpField));
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
Das folgende Beispiel zeigt die Identifizierung von Duplikaten, verwendet jedoch ein dynamisches Attribut anstelle eines Felds in AddHaving() Methodenaufruf.
function getDupes(tableName, dpField) {
var ga = new GlideAggregate(tablename);
ga.addAggregate('COUNT', dpField); // Aggregate to count values in whatever dynamic attribute is passed as dpField
ga.addHaving('COUNT', dpField, '>', '1'); // Returns only records having more than one active instance of dpField
ga.query();
var arDupes = new Array(); // Build array to push the results into
while (ga.next()) {
arDupes.push(ga.getValue(dpField)); // Push the value of the dupe field to the array
}
return arDupes;
}
var tableName = "cmdb";
var dpField = "dyn_att_field->group->attr";
gs.print(getDupes(tableName, dpField));
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
GlideAggregat – addTrend(Zeichenfolge Feldname, Zeichenfolgenzeitintervall, ZahlennummernEinheiten)
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 auftreten sollen. |
| Zeitintervall | Zeichenfolge | Zeitintervall für den Trend. Gültige Werte:
|
| Numerische Einheiten | Nummer | Optional. Nur gültig, wenn timeInterval= Minute . Anzahl der Minuten, die in den Trend aufgenommen werden sollen. Standard: 1 |
| Typ | Beschreibung |
|---|---|
| Keine |
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
Zur Verwendung von AddTrend() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: AddTrend() .
GlideAggregate – getAggregate(Zeichenfolgenagg, Zeichenfolgenname)
Ruft den Wert eines Aggregats aus dem aktuellen Datensatz ab.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Typ des Aggregats. Gültige Werte:
|
| name | Zeichenfolge | Name des Felds oder Pfad zu einem Attribut in einem dynamischen Schema, aus dem das Aggregat abgerufen werden soll. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Wert der Zusammenfassung. Wenn die aggregierten Werte FX-Währungswerte sind, hat der zurückgegebene Wert das Format <currency_code;currency_value> , Z. B.: 134,980000 USD . Hinweis: Wenn das angegebene Feld FX-Währungswerte von Typen mit gemischter Währung enthält, kann die Methode die Werte nicht aggregieren und gibt ein Semikolon (;) zurück. |
Dieses Beispiel zeigt, wie das ZÄHLUNGSAGGREGAT abgerufen wird.
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
Das folgende Beispiel zeigt, wie diese Methode mit einem Attribut in einem dynamischen Attributspeicher aufgerufen wird.
var ga_Inc = new GlideAggregate('incident');
ga_Inc.groupBy('inc_dynamic_schema->cars->make');
ga_Inc.addAggregate('AVG', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MIN', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MAX', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('SUM', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('STDDEV', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.query();
while (ga_Inc.next()) {
gs.info(gr_Inc.getValue('inc_dynamic_schema->cars->make'));
gs.info('AVG: ' + ga_Inc.getAggregate('AVG', 'inc_dynamic_schema->cars->cost'));
gs.info('MAX: ' + ga_Inc.getAggregate('MAX', 'inc_dynamic_schema->cars->cost'));
gs.info('MIN: ' + ga_Inc.getAggregate('MIN', 'inc_dynamic_schema->cars->cost'));
gs.info('SUM: ' + ga_Inc.getAggregate('SUM', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT: ' + ga_Inc.getAggregate('COUNT', 'inc_dynamic_schema->cars->cost'));
gs.info('STDDEV: ' + ga_Inc.getAggregate('STDDEV', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT: ' + ga_Inc.getAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT_DISTINCT: ' + ga_Inc.getAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT(DISTINCT: ' + ga_Inc.getAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info(' ');
}
Ausgabe:
*** Script: BMW
*** Script: AVG: 31852.066666666667
*** Script: MAX: 49182
*** Script: MIN: 16544
*** Script: SUM: 477781
*** Script: COUNT: 15
*** Script: STDDEV: 10376.50218706
*** Script: GROUP_CONCAT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: GROUP_CONCAT_DISTINCT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: COUNT(DISTINCT: 15
*** Script:
*** Script: Ford
*** Script: AVG: 31520.090909090909
*** Script: MAX: 47408
*** Script: MIN: 16080
*** Script: SUM: 346721
*** Script: COUNT: 11
*** Script: STDDEV: 11355.75551388
*** Script: GROUP_CONCAT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: GROUP_CONCAT_DISTINCT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: COUNT(DISTINCT: 11
*** Script:
*** Script: Honda
*** Script: AVG: 31972.750000000000
*** Script: MAX: 49187
*** Script: MIN: 15208
*** Script: SUM: 511564
*** Script: COUNT: 16
*** Script: STDDEV: 10240.67632207
*** Script: GROUP_CONCAT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: GROUP_CONCAT_DISTINCT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: COUNT(DISTINCT: 16
*** Script:
*** Script: Lexus
*** Script: AVG: 29841.250000000000
*** Script: MAX: 48406
*** Script: MIN: 15517
*** Script: SUM: 238730
*** Script: COUNT: 8
*** Script: STDDEV: 12073.56647214
*** Script: GROUP_CONCAT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: GROUP_CONCAT_DISTINCT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: COUNT(DISTINCT: 8
*** Script:
*** Script: Tesla
*** Script: AVG: 30790.000000000000
*** Script: MAX: 45032
*** Script: MIN: 16724
*** Script: SUM: 431060
*** Script: COUNT: 14
*** Script: STDDEV: 8510.068136760580
*** Script: GROUP_CONCAT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: GROUP_CONCAT_DISTINCT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: COUNT(DISTINCT: 14
*** Script:
*** Script: Toyota
*** Script: AVG: 32115.444444444444
*** Script: MAX: 49418
*** Script: MIN: 15188
*** Script: SUM: 289039
*** Script: COUNT: 9
*** Script: STDDEV: 12120.76776767
*** Script: GROUP_CONCAT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: GROUP_CONCAT_DISTINCT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: COUNT(DISTINCT: 9
*** Script:
Bereichsbezogenes Äquivalent
Zur Verwendung von GetAggregat() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: GetAggregat() .
GlideAggregate – getDynamicAttributeValue(Zeichenfolge vollständiger Pfad)
Gibt den Wert des dynamischen Attributs an einem angegebenen Pfad zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| fullPath | Zeichenfolge | Pfad, der zum Suchen des gewünschten dynamischen Attributs verwendet werden soll. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
|
| Typ | Beschreibung |
|---|---|
| Objekt | Wert des dynamischen Attributs, das sich am angegebenen Pfad befindet. Wenn fullPathParameter enthält ungültige Daten, oder der angegebene Attributwert ist keiner der unterstützten Datentypen, gibt null zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeValue('u_dyn_attr_store->paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate – getDynamicAttributeValue(Zeichenfolge dynamicAttributeField, Zeichenfolge groupAttrPath)
Gibt den Wert des dynamischen Attributs zurück, das sich in einem angegebenen Feld in der aktuellen Tabelle und einem angegebenen Attributpfad befindet.
| Name | Typ | Beschreibung |
|---|---|---|
| DynamicAttributeField | Zeichenfolge | Name des Felds in der Tabelle, das das dynamische Attribut enthält. |
| GroupAttrPath | Zeichenfolge | Attributpfad, der zum Suchen des zugehörigen dynamischen Schemaattributs verwendet werden soll. Format: „Group_Name->attr_Name“
Beispiel: |
| Typ | Beschreibung |
|---|---|
| Objekt | Wert des dynamischen Attributs, das sich am angegebenen Pfad befindet. Wenn einer der beiden ist dynamicAttributeFieldOder groupAttrPathParameter sind ungültig, gibt null zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeValue('u_dyn_attr_store', 'paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate – getDynamicAttributeDisplayValue(Zeichenfolge vollständiger Pfad)
Gibt den Anzeigewert des dynamischen Attributs zurück, das sich am angegebenen Pfad befindet.
| Name | Typ | Beschreibung |
|---|---|---|
| fullPath | Zeichenfolge | Pfad, der zum Suchen des gewünschten dynamischen Attributs verwendet werden soll. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
|
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Anzeigewert des dynamischen Attributs, das sich am angegebenen Pfad befindet. Wenn fullPathParameter ist ungültig, gibt null zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeDisplayValue('u_dyn_attr_store->paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate – getDynamicAttributeDisplayValue(Zeichenfolge dynamicAttributeField, Zeichenfolge groupAttrPath)
Gibt den Anzeigewert des dynamischen Attributs zurück, das sich in einem angegebenen Tabellenfeld und Attributpfad befindet.
| Name | Typ | Beschreibung |
|---|---|---|
| DynamicAttributeField | Zeichenfolge | Name des Felds in der Tabelle, das das dynamische Attribut enthält. |
| GroupAttrPath | Zeichenfolge | Attributpfad, der zum Suchen des zugehörigen dynamischen Schemaattributs verwendet werden soll. Format: „Group_Name->attr_Name“
Beispiel: |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Anzeigewert des dynamischen Attributs, das sich am angegebenen Pfad befindet. Wenn einer der beiden ist dynamicAttributeFieldOder groupAttrPathParameter sind ungültig, gibt null zurück. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeDisplayValue('u_dyn_attr_store', 'paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate – getQuery()
Ruft die Abfrage ab, die erforderlich ist, um das aktuelle Aggregat zurückzugeben.
| 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);
}
GlideAggregat – 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
Zur Verwendung von GetRowCount() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: Bereichsbezogenes GlideAggregat – getRowCount() .
GlideAggregat – getTotal(Zeichenfolgenagg, Zeichenfolgenname)
Gibt die Anzahl der Datensätze durch Summieren eines Aggregats zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Name eines zu verwendenden Aggregats. Gültige Werte:
|
| name | Zeichenfolge | Name des zu aggregierenden Felds. |
| 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(Zeichenfolgenname)
Gibt den Wert eines Felds oder eines dynamischen Attributs zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| name | Zeichenfolge | Feldname oder Pfad zu einem Attribut in einem dynamischen Attributspeicher. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
|
| 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
Zur Verwendung von GetValue() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: GetValue() .
GlideAggregate – groupBy(Zeichenfolgenname)
Gibt den Namen eines Felds oder eines Attributs in einem dynamischen Attributspeicher an, der beim Gruppieren der Aggregate verwendet werden soll.
Kann mehrmals aufgerufen werden, um mehrere Gruppenfelder festzulegen.
| Name | Typ | Beschreibung |
|---|---|---|
| name | Zeichenfolge | Feldname oder Pfad zu einem Attribut in einem dynamischen Attributspeicher. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie diese Methode aufgerufen wird.
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);
}
Das folgende Beispiel zeigt, wie diese Methode mit einem Attribut in einem dynamischen Attributspeicher aufgerufen wird.
var ga_AppTab = new GlideAggregate('application_table');
ga_AppTab.addGroupBy('dyn_att_field->group->attr');
ga_AppTab.addAggregate('AVG', 'dyn_att_field->group->attr1');
ga_AppTab.addHaving('SUM', 'dyn_att_field->group->attr2', '>=', 420);
ga.query();
Bereichsbezogenes Äquivalent
Zur Verwendung von Groupby() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: Groupby() .
GlideAggregat – orderBy(Zeichenfolgenname)
Ordnet die Aggregate anhand des Werts des angegebenen Felds, des dynamischen Attributpfads oder der Glidefunktion an. Das Feld wird auch der Liste „Gruppieren nach“ hinzugefügt.
| Name | Typ | Beschreibung |
|---|---|---|
| name | Zeichenfolge | Feldname, Pfad zu einem Attribut in einem dynamischen Attributspeicher oder Glidefunktion, die zum Sortieren der Aggregate verwendet werden soll. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema. Glidefunktionsformat: |
| Typ | Beschreibung |
|---|---|
| Keine |
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
Zur Verwendung von OrderBy() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: OrderBy() .
GlideAggregate – orderByAggregate(Zeichenfolge agg, Zeichenfolge fieldName)
Ordnet die Aggregate basierend auf dem angegebenen Aggregat und Feld oder dynamischen Attribut an.
| Name | Typ | Beschreibung |
|---|---|---|
| agg | Zeichenfolge | Typ der Zusammenfassung. Gültige Werte:
|
| fieldName | Zeichenfolge | Name des Felds oder Pfads zu einem Attribut in einem dynamischen Attributspeicher, das aggregiert werden soll. Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attributname
Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema. |
| Typ | Beschreibung |
|---|---|
| Keine |
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
Zur Verwendung von SorderNachAggregat() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: SorderNachAggregat() .
GlideAggregate – query()
Gibt die Abfrage aus und ruft die Ergebnisse ab.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
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
Zur Verwendung von Abfrage() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: Abfrage() .
GlideAggregate – setAggregateWindow(Nummer firstRow, Nummer lastRow)
Begrenzt die Anzahl der Zeilen aus der Tabelle, die in die Aggregatabfrage aufgenommen werden sollen.
| Name | Typ | Beschreibung |
|---|---|---|
| Erste Zeile | Nummer | Null-basierter Index der ersten Zeile, die in die Aggregatabfrage aufgenommen werden soll, einschließlich. |
| LastRow | Nummer | Null-basierter Index der letzten Zeile, die in die Aggregatabfrage aufgenommen werden soll, exklusiv. |
| Typ | Beschreibung |
|---|---|
| Keine |
Druckt die Anzahl jeder Kategorie für die ersten zehn Datensätze in der Tabelle „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]);
}
Ausgabe:
database count: 1
Hardware count: 1
inquiry count: 7
software count: 1
Bereichsbezogenes Äquivalent
Zur Verwendung von SetAggregateWindow() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: SetAggregateWindow() .
GlideAggregat – setGroup(boolescher Wert 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 |
|---|---|
| Keine |
var ga = new GlideAggregate('incident');
ga.addAggregate('COUNT', 'category');
ga.setGroup(true);
Bereichsbezogenes Äquivalent
Zur Verwendung von SetGroup() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: SetGroup() .
GlideAggregat – setIntervalYearIncluded (boolescher Wert b)
Legt fest, ob Ergebnisse nach Jahr für Wochentagstrends gruppiert werden sollen. Diese Trends werden mit erstellt AddTrend() Methode mit dayofweekZeitintervall.
Abhängigkeit: GlideAggregat – addTrend('<fieldName>', 'dayofweek') .
| Name | Typ | Beschreibung |
|---|---|---|
| b | Boolean | Kennzeichnung, die angibt, ob ein Jahr für einen Trend mit einem Wochentag-Zeitintervall eingeschlossen werden soll. Gültige Werte:
Standard: Wahr |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Incidents gezählt werden, die in den letzten sechs Monaten erstellt wurden. Die Incidents werden durch den Wochentag getrennt, jedoch nicht durch das Jahr. Beispielsweise 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
Zur Verwendung von SetIntervalYearIncluded() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: SetIntervalYearIncluded() .