GlideAggregat – Global

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 25 Minuten Lesedauer
  • Die GlideAggregat API ermöglicht das Erstellen von Abfragen zur Datenbankzusammenfassung.

    Die GlideAggregat Klasse ist eine Erweiterung von GlideRecord Klasse und bietet Datenbankzusammenfassung (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN., STDDEV, SUMME) ABFRAGEN. Diese Funktion kann hilfreich sein, wenn Sie angepasste Berichte erstellen oder Berechnungen für berechnete Felder durchführen.

    Wenn Sie verwenden GlideAggregat Methoden für Währungs- oder Preisfelder verwenden Sie den Referenzwährungswert. Stellen Sie sicher, dass Sie die Zusammenfassungswerte für die Anzeige in die Sitzungswährung des Benutzers 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. Um dynamische Daten mit dieser API zu lesen, müssen Sie über die Rolle Dynamic_Schema_Reader verfügen.

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    Hinweis:
    Wenn Sie ein On-Premise-System verwenden, muss die Zeitzone des Datenbankservers auf GMT/UTC gesetzt sein, damit diese Klasse ordnungsgemäß funktioniert.

    GlideAggregate – addAggregate(String agg, String name)

    Fügt einer Datenbankabfrage ein Aggregat hinzu.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    agg Zeichenfolge Name eines zu verwendenden Aggregats.
    Gültige Werte:
    • DURCHSCHNITT: Durchschnittswert des Ausdrucks.
    • ANZAHL: Anzahl der nicht-Null-Werte.
    • GROUP_CONCAT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • GROUP_CONCAT_DISTINCT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, entfernt Duplikate, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • MAX.: Größter oder maximaler Wert.
    • MIN.: Mindestwert.
    • STDDEV: Standardabweichung der Population.
    • SUMME: Summe aller 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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    Standard: Null

    Tabelle : 2. Rückgaben
    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

    Um die addAggregate()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: addAggregate().

    GlideAggregate – addBizCalendarTrend(String fieldName, String 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.

    Hinweis:
    Diese Methode verwendet den JOIN-Operator nicht für die SQL-Abfragen.
    Tabelle : 3. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Feld „Datum und Uhrzeit“ im zugehörigen GlideRecord, das verwendet werden soll, um zu bestimmen, in welche 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.
    Tabelle : 4. Rückgaben
    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.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Codierte Abfragezeichenfolge, die dem Aggregat hinzugefügt werden soll.
    Tabelle : 6. Rückgaben
    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

    Um die addEncodedQuery()-Methode in einer Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: addEncodedQuery().

    GlideAggregate – addHaving(String name, String operator, String value)

    Fügt dem Aggregat ein „Haben“-Element hinzu, z. B. „Kategorie auswählen“, „Anzahl(*)“ aus der Incident-Gruppe nach Kategorie MIT „Anzahl(*) > 5“.

    Tabelle : 7. Parameter
    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“.
    Tabelle : 8. Rückgaben
    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“, „Anzahl(*)“ aus der Incident-Gruppe nach Kategorie MIT „Anzahl(*) > 5“. Mit dieser Implementierung der Methode können Sie ein bestimmtes Feld in einer Tabelle oder einem dynamischen Attribut angeben, auf das Sie reagieren können.

    Tabelle : 9. Parameter
    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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    operator Zeichenfolge Operator-Symbol.

    Beispiel: <, >, =, !=.

    Wert Zeichenfolge Wert, der abgefragt werden soll.

    Beispiel: „5“.

    Tabelle : 10. Rückgaben
    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

    GlideAggregate – addTrend(String fieldName, String timeInterval, NummernnummernEinheiten)

    Fügt einen Trend für ein Feld hinzu. Verwenden Sie einen Trend, um Muster über einen bestimmten Zeitraum anzuzeigen.

    Hinweis:
    Um zu steuern, ob eine Gruppe durchgeführt werden soll dayofweekErgebnisse nach Jahr, verwenden GlideAggregate – setIntervalYearIncluded (boolescher Wert b).
    Tabelle : 11. Parameter
    Name Typ Beschreibung
    fieldName Zeichenfolge Name des Felds, für das Trends auftreten sollen.
    timeInterval Zeichenfolge Zeitintervall für den Trend.
    Gültige Werte:
    • Datum
    • wochentag
    • Stunde
    • Minute
    • Quartal
    • Wert
    • Woche
    • Jahr
    Numerische Einheiten Anzahl Optional. Nur gültig, wenn timeInterval= Minute . Anzahl der Minuten, die in den Trend aufgenommen werden sollen.

    Standard: 1

    Tabelle : 12. Rückgaben
    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(String agg, String name)

    Ruft den Wert einer Zusammenfassung aus dem aktuellen Datensatz ab.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    agg Zeichenfolge Typ des Aggregats.
    Gültige Werte:
    • DURCHSCHNITT: Durchschnittswert des Ausdrucks.
    • ANZAHL: Anzahl der nicht-Null-Werte.
    • GROUP_CONCAT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • GROUP_CONCAT_DISTINCT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, entfernt Duplikate, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • MAX.: Größter oder maximaler Wert.
    • MIN.: Mindestwert.
    • STDDEV: Standardabweichung der Population.
    • SUMME: Summe aller 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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    Tabelle : 14. Rückgaben
    Typ Beschreibung
    Zeichenfolge Wert der Zusammenfassung.
    Wenn die aggregierten Werte FX-Währungswerte sind, wird der zurückgegebene Wert im Format angegeben <currency_code;currency_value> , Z. B.: USD;134,980000 .
    Hinweis:
    Wenn das angegebene Feld FX-Währungswerte gemischter Währungstypen 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 Felds „FX-Währung“.

    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

    Um die getAggregate()-Methode für eine Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: getAggregate().

    GlideAggregate – getDynamicAttributeValue(Zeichenfolge vollständiger Pfad)

    Gibt den Wert des dynamischen Attributs an einem angegebenen Pfad zurück.

    Tabelle : 15. Parameter
    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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Tabelle : 16. Rückgaben
    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'));
    }
    Ausgabe:
    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

    GlideAggregate – 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.

    Tabelle : 17. Parameter
    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“
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group] oder im Feld Gruppe der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    • attr_Name : Name des dynamischen Attributs innerhalb der dynamischen Gruppe.

      Tabelle: Im Feld Name der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Beispiel: „Auto->Farbe“

    Tabelle : 18. Ergebnisse
    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'));
    }
    Ausgabe:
    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

    GlideAggregate – getDynamicAttributeDisplayValue(Zeichenfolge vollständiger Pfad)

    Gibt den Anzeigewert des dynamischen Attributs zurück, das sich am angegebenen Pfad befindet.

    Tabelle : 19. Parameter
    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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Tabelle : 20. Rückgaben
    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'));
    }
    Ausgabe:
    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

    GlideAggregate – getDynamicAttributeDisplayValue(Zeichenfolge dynamicAttributeField, Zeichenfolge groupAttrPath)

    Gibt den Anzeigewert des dynamischen Attributs zurück, das sich in einem angegebenen Tabellenfeld und Attributpfad befindet.

    Tabelle : 21. Parameter
    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“
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group] oder im Feld Gruppe der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    • attr_Name : Name des dynamischen Attributs innerhalb der dynamischen Gruppe.

      Tabelle: Im Feld Name der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Beispiel: „Auto->Farbe“

    Tabelle : 22. Ergebnisse
    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'));
    }
    Ausgabe:
    *** Script: color: blue  avg: 5.0000
    *** Script: color: red  avg: 8.0000
    *** Script: color: yellow  avg: 7.0000

    GlideAggregate – getQuery()

    Ruft die für die Rückgabe der aktuellen Zusammenfassung erforderliche Abfrage ab.

    Tabelle : 23. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 24. Ergebnisse
    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.

    Tabelle : 25. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 26. Ergebnisse
    Typ Beschreibung
    Anzahl 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);
      }
    Ausgabe:
    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

    Bereichsbezogenes Äquivalent

    Zur Verwendung von GetRowCount() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: Bereichsbezogenes GlideAggregat – getRowCount() .

    GlideAggregate – getTotal(String agg, String name)

    Gibt die Anzahl der Datensätze zurück, indem eine Zusammenfassung summiert wird.

    Tabelle : 27. Parameter
    Name Typ Beschreibung
    agg Zeichenfolge Name eines zu verwendenden Aggregats.
    Gültige Werte:
    • DURCHSCHNITT: Durchschnittswert des Ausdrucks.
    • ANZAHL: Anzahl der nicht-Null-Werte.
    • GROUP_CONCAT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • GROUP_CONCAT_DISTINCT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, entfernt Duplikate, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • MAX.: Größter oder maximaler Wert.
    • MIN.: Mindestwert.
    • STDDEV: Standardabweichung der Population.
    • SUMME: Summe aller Werte.
    Name Zeichenfolge Name des Feldes, das zusammengefasst werden soll.
    Tabelle : 28. Ergebnisse
    Typ Beschreibung
    Anzahl 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 oder eines dynamischen Attributs zurück.

    Tabelle : 29. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Feldname oder Pfad zu einem Attribut in einem dynamischen Attributspeicher.
    Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Tabelle : 30. Rückgaben
    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().

    GlideAggregate – groupBy(String name)

    Gibt den Namen eines Felds oder eines Attributs in einem dynamischen Attributspeicher an, das beim Gruppieren der Aggregate verwendet werden soll.

    Kann mehrfach aufgerufen werden, um mehrere Gruppenfelder festzulegen.

    Tabelle : 31. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Feldname oder Pfad zu einem Attribut in einem dynamischen Attributspeicher.
    Format des dynamischen Pfads: dyn_ATT_field->Group_Name->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    Tabelle : 32. Rückgaben
    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

    Um die groupBy()-Methode zu in einer Bereichsanwendung zu verwenden, verwenden Sie die entsprechende Bereichsmethode: groupBy().

    GlideAggregate – orderBy(String name)

    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.

    Tabelle : 33. Parameter
    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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    Glidefunktionsformat: Glidefunktion:length(short_description) . Weitere Informationen zu Glidefunktionen finden Sie unter Glidefunktionsvorgänge .

    Tabelle : 34. Rückgaben
    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

    Um die orderBy()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: orderBy().

    GlideAggregate – orderByAggregate(String agg, String fieldName)

    Ordnet die Aggregate basierend auf dem angegebenen Aggregat und Feld oder dynamischen Attribut an.

    Tabelle : 35. Parameter
    Name Typ Beschreibung
    agg Zeichenfolge Zusammenfassungstyp.
    Gültige Werte:
    • DURCHSCHNITT: Durchschnittswert des Ausdrucks.
    • ANZAHL: Anzahl der nicht-Null-Werte.
    • GROUP_CONCAT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • GROUP_CONCAT_DISTINCT: Verkettet alle nicht-Null-Werte der Gruppe in aufsteigender Reihenfolge, entfernt Duplikate, verbindet sie mit einem Komma („,“) und gibt das Ergebnis als Zeichenfolge zurück.
    • MAX.: Größter oder maximaler Wert.
    • MIN.: Mindestwert.
    • STDDEV: Standardabweichung der Population.
    • SUMME: Summe aller 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->Attribute_Name
    • dyn_ATT_field : Name eines dynamischen Attributspeicherfelds in der Tabelle.
    • Gruppenname : Name der Gruppe, der das Attribut zugeordnet ist.

      Tabelle: Im Feld Group_Name der Tabelle „dynamische Attributgruppe“ [Dynamic_Attribute_Group].

    • attr_Name : Name des dynamischen Attributs.

      Tabelle: Im Attributfeld der Tabelle „dynamisches Attribut“ [Dynamic_Attribute].

    Weitere Informationen zu dynamischen Attributen finden Sie unter Dynamic Schema.

    Tabelle : 36. Rückgaben
    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

    Um die orderByAggregate()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: orderByAggregate().

    GlideAggregate – query()

    Gibt die Abfrage aus und ruft die Ergebnisse ab.

    Tabelle : 37. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 38. Ergebnisse
    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

    Um die query()-Methode in einer bereichsbezogenen Anwendung zu verwenden, verwenden Sie die entsprechende bereichsbezogene Methode: query().

    GlideAggregate – setAggregateWindow(Number firstRow, Number lastRow)

    Begrenzt die Anzahl der Zeilen aus der Tabelle, die in die Aggregatabfrage aufgenommen werden sollen.

    Tabelle : 39. Parameter
    Name Typ Beschreibung
    firstRow Anzahl Null-basierter Index der ersten Zeile, die in die Aggregatabfrage aufgenommen werden soll, einschließlich.
    letzte Reihe Anzahl Null-basierter Index der letzten Zeile, die in die Aggregatabfrage aufgenommen werden soll, exklusiv.
    Tabelle : 40. Rückgaben
    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() .

    GlideAggregate – setGroup(Boolean b)

    Legt fest, ob die Ergebnisse gruppiert werden sollen.

    Tabelle : 41. Parameter
    Name Typ Beschreibung
    b Boolean Kennzeichnung, die angibt, ob die Ergebnisse gruppiert werden sollen.
    Gültige Werte:
    • Wahr: Gruppieren Sie die Ergebnisse.
    • Falsch: Gruppieren Sie die Ergebnisse nicht.
    Tabelle : 42. Rückgaben
    Typ Beschreibung
    Keine
    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT', 'category');
     
    ga.setGroup(true);

    Bereichsbezogenes Äquivalent

    Um die setGroup()-Methode in einer Bereichsanwendung zu verwenden, vernwenden Sie die entsprechende Bereichsmethode: setGroup().

    GlideAggregate – 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') .

    Tabelle : 43. Parameter
    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:
    • Wahr: Wochentagsergebnisse nach Jahr gruppieren.
    • Falsch: Jahr aus Zeitintervallergebnissen ausschließen.

    Standardwert: wahr

    Tabelle : 44. Rückgaben
    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

    Zur Verwendung von SetIntervalYearIncluded() Methode in einer bereichsbezogenen Anwendung verwenden Sie die entsprechende bereichsbezogene Methode: SetIntervalYearIncluded() .