---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideAggregate: スコープ指定

# GlideAggregate: スコープ指定 {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：34分

GlideAggregate API を使用すると、データベース集計クエリを作成できます。

GlideAggregate クラスは GlideRecord クラスの拡張であり、データベースアグリゲーション (AVG、COUNT、GROUP_CONCAT、GROUP_CONCAT_DISTINCT、MAX、MIN、STDDEV、SUM) クエリを提供します。この機能は、カスタマイズされたレポートを作成するときや計算フィールドを計算する場合に役立ちます。

通貨または価格フィールドで GlideAggregate メソッドを使用する場合は、参照通貨値で作業します。表示するには、集計値をユーザーのセッション通貨に変換してください。通貨または価格の値 (表示値) とその参照 [通貨](https://www.servicenow.com/docs/access?context=currency&version=australia&pubname=australia-platform-administration&ft:locale=en-US) 値 (集計値) との間の換算レートが変化する可能性があるため、結果がユーザーの期待と異なる場合があります。  
注:  
オンプレミスシステムを使用する場合、このクラスを正しく機能させるには、データベースサーバーのタイムゾーンを GMT/UTC に設定する必要があります。

## スコープ対象 GlideAggregate:GlideAggregate(文字列 tableName) {#ariaid-title2}

指定されたテーブルに GlideAggregate オブジェクトを作成します。
{#r_ScopedGlideAggregateGlideAggregate_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| tableName | 文字列 | テーブルの名前です。 |
[表 : 1. パラメーター]

{#r_ScopedGlideAggregateGlideAggregate_String__table_vy2_525_jq}  

    var count = new GlideAggregate('incident');

## スコープ対象 GlideAggregate - addAggregate(String agg, String name) {#ariaid-title3}

集計をデータベースクエリに追加します。
{#r_ScopedGlideAggregateAddAggregate_String_String__id_zgs_fl2_4nb__entry__3}{#r_ScopedGlideAggregateAddAggregate_String_String__agg-GlideAgg-row}

| 名前 | タイプ | 説明 |
|-|-|-|
| 集計 | 文字列 | 使用するアグリゲートの名前。 有効な値： * AVG:式の平均値。 * COUNT:null 以外の値の数。 * GROUP_CONCAT:グループのすべての非 null 値を昇順で連結し、カンマ (',') で結合して、結果を文字列として返します。 * GROUP_CONCAT_DISTINCT:グループのすべての非 null 値を昇順で連結し、重複を削除してカンマ (',') で結合し、結果を文字列として返します。 * MAX:最大値。 * MIN:最小値。 * STDDEV:母集団の標準偏差。 * SUM:すべての値の合計。 |
| name | 文字列 | オプション。集計結果をグループ化するフィールドの名前。 デフォルト：Null |
[表 : 2. パラメーター]

{#r_ScopedGlideAggregateAddAggregate_String_String__id_zgs_fl2_4nb} {#r_ScopedGlideAggregateAddAggregate_String_String__table_qpt_3f5_jq1__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 3. 返される内容]

{#r_ScopedGlideAggregateAddAggregate_String_String__table_qpt_3f5_jq1}  
次の例は、インシデント \[incident\] テーブルで GlideAggregate 関数を使用する方法を示しています。

    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(' ');
    }

出力。

    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

## スコープ付き GlideAggregate:addEncodedQuery(文字列クエリ) {#ariaid-title4}

このアグリゲートに設定されている可能性がある他のクエリに、エンコードされたクエリを追加します。
{#r_ScopedGlideAggregateAddEncodedQuery_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| query | 文字列 | アグリゲートに追加するエンコードされたクエリ。 |
[表 : 4. パラメーター]

{#r_ScopedGlideAggregateAddEncodedQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddEncodedQuery_String__table_qpt_3f5_jq1__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#r_ScopedGlideAggregateAddEncodedQuery_String__table_qpt_3f5_jq1}  

    //Number of incidents varies depending on the current state
    //of the incident table
    var count = new GlideAggregate('incident');
    count.addEncodedQuery('active=true');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next())
       incidents = count.getAggregate('COUNT');
    gs.info(incidents);

## スコープ対象 GlideAggregate - addQuery(文字列名, 文字列演算子, 文字列値) {#ariaid-title5}

アグリゲートにクエリを追加します。
{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 追加するクエリ。 |
| オペレーター | 文字列 | クエリの演算子。 |
| value | 文字列 | クエリに含める値のリスト。 |
[表 : 6. パラメーター]

{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddQuery_String_String_String__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | クエリ条件。 |
[表 : 7. 返される内容]

{#r_ScopedGlideAggregateAddQuery_String_String_String__table_qpt_3f5_jq}  

    //Number of incidents varies depending on the current state
    //of the incident table
    var count = new GlideAggregate('incident');
    count.addQuery('active', '=','true');
    count.addAggregate('COUNT', 'category');
    count.query();  
    while (count.next()) {
       var category = count.category;
       var categoryCount = count.getAggregate('COUNT', 'category');
       gs.info("There are currently " + categoryCount + " incidents with a category of " + category);
    }

出力:

    There are currently 1 incidents with a category of database
    There are currently 5 incidents with a category of hardware
    There are currently 42 incidents with a category of inquiry
    There are currently 4 incidents with a category of network
    There are currently 4 incidents with a category of request
    There are currently 7 incidents with a category of software

## スコープ付き GlideAggregate - addNotNullQuery(String fieldName) {#ariaid-title6}

アグリゲートに null 以外のクエリを追加します。
{#r_ScopedGlideAggregateAddNotNullQuery_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldname | 文字列 | フィールドの名前 |
[表 : 8. パラメーター]

{#r_ScopedGlideAggregateAddNotNullQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddNotNullQuery_String__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | スコープ対象クエリ条件。 |
[表 : 9. 返される内容]

{#r_ScopedGlideAggregateAddNotNullQuery_String__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
      count.addNotNullQuery('short_description');
      count.query();   // Issue the query to the database to get all records
      while (count.next()) {   
         // add code here to process the aggregate
      }

## スコープ付き GlideAggregate:addNullQuery(文字列 fieldName) {#ariaid-title7}

アグリゲートに null クエリを追加します。
{#r_ScopedGlideAggregateAddNullQuery_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | フィールドの名前 |
[表 : 10. パラメーター]

{#r_ScopedGlideAggregateAddNullQuery_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddNullQuery_String__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | スコープ対象のクエリ条件。 |
[表 : 11. 返される内容]

{#r_ScopedGlideAggregateAddNullQuery_String__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
      count.addNullQuery('short_description');
      count.query();   // Issue the query to the database to get all records
      while (count.next()) {   
         // add code here to process the aggregate
      }

## スコープ対象 GlideAggregate - addTrend(String fieldName, String timeInterval, Number numUnits) {#ariaid-title8}

指定されたフィールドの傾向を追加します。傾向を使用して、一定期間のパターンを示します。
注:  
dayofweek結果を年別にグループ化するかどうかを制御するには、[スコープ対象 GlideAggregate:setIntervalYearIncluded(Boolean b)](https://servicenow-prod.fluidtopics.net/YH3MF48VxvVzg8O89GnOiw#ScopedGlAgg-setIntervalYearInclu_B "曜日の傾向の結果を年別にグループ化するかどうかを設定します。これらの傾向は、dayofweek時間間隔の addTrend() メソッドを使用して作成されます。") を使用します。
{#r_ScopedGlideAggAddTrend_S_S__table_tlk_cdk_ws__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | 傾向が発生するフィールドの名前。 |
| 時間間隔 | 文字列 | 傾向の時間間隔。 有効な値： * date * 曜日 * 時間 * 分 * 四半期 * value * 週 * 年 {#r_ScopedGlideAggAddTrend_S_S__ul_rm5_xqq_gnb} |
| 単位数 | 番号 | オプション。timeInterval = 分の場合にのみ有効です。傾向に含める分数。 デフォルト値：1 |
[表 : 12. パラメーター]

{#r_ScopedGlideAggAddTrend_S_S__table_tlk_cdk_ws} {#r_ScopedGlideAggAddTrend_S_S__table_frl_fqd_3z__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 13. 返される内容]

{#r_ScopedGlideAggAddTrend_S_S__table_frl_fqd_3z}  

    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT'); // Count all incidents opened each quarter
    ga.addTrend('opened_at', 'quarter');
    ga.query();
    while(ga.next()) {
     gs.info([ga.getValue('timeref'), ga.getAggregate('COUNT')]);
    }

出力:

    3/2018, 9
    4/2018, 2
    1/2019, 38
    2/2019, 310

## スコープ対象 GlideAggregate:getAggregate(文字列集計、文字列名) {#ariaid-title9}

現在のレコードから集計値を返します。
{#r_ScopedGlideAggregateGetAggregate_String_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 集計 | 文字列 | アグリゲートのタイプ。 有効な値： * AVG:式の平均値。 * COUNT:null 以外の値の数。 * GROUP_CONCAT:グループのすべての非 null 値を昇順で連結し、カンマ (',') で結合して、結果を文字列として返します。 * GROUP_CONCAT_DISTINCT:グループのすべての非 null 値を昇順で連結し、重複を削除してカンマ (',') で結合し、結果を文字列として返します。 * MAX:最大値。 * MIN:最小値。 * STDDEV:母集団の標準偏差。 * SUM:すべての値の合計。 |
| name | 文字列 | 集計を実行するフィールドの名前。 |
[表 : 14. パラメーター]

{#r_ScopedGlideAggregateGetAggregate_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGetAggregate_String_String__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 集計の値。 集計される値が FX 通貨値の場合、戻り値は次の形式になります `<currency_code;currency_value>`、 例:USD。134.980000です。 注: 指定されたフィールドに混合通貨タイプの FX 通貨値が含まれている場合、メソッドは値を集計できず、セミコロン (;) を返します。 |
[表 : 15. 返される内容]

{#r_ScopedGlideAggregateGetAggregate_String_String__table_qpt_3f5_jq}  
インシデントテーブルのレコード数を返す集計を表示します。

    var count = new GlideAggregate('incident');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next()) {
      incidents = count.getAggregate('COUNT');
    }
    //Number of incidents varies depending on the current state
    //of the incident table
    gs.info('Number of incidents: ' + incidents);

出力:インシデントの数:63。  
FX 通貨フィールドのアグリゲーションを表示します。

    var ga = new GlideAggregate('laptop_tracker');
    ga.addAggregate('SUM', 'cost');
    ga.groupBy('name');
    ga.query();
    while (ga.next()) {
      gs.info('Aggregate results ' + ga.getValue('name') + ' => ' + ga.getAggregate('SUM', 'cost'));
    }

出力:

    *** 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

## スコープ付き GlideAggregate:getAggregateEncodedQuery() {#ariaid-title10}

現在の集計を返すために必要なクエリを取得します。
{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_vy2_535_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 16. パラメーター]

{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | アグリゲートを取得するためのエンコードされたクエリ。 |
[表 : 17. 返される内容]

{#r_ScopedGlideAggregateGetAggregateEncodedQuery__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MIN', 'sys_mod_count');
    count.groupBy('category');
    count.query();  
    while (count.next()) {
        gs.info(count.getAggregateEncodedQuery());
    }

出力:

    category=database
    category=hardware
    category=inquiry
    category=network
    category=request
    category=software

## スコープ指定 GlideAggregate - getEncodedQuery() {#ariaid-title11}

エンコードされたクエリを取得します。
{#r_ScopedGlideAggregateGetEncodedQuery__table_vy2_535_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 18. パラメーター]

{#r_ScopedGlideAggregateGetEncodedQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateGetEncodedQuery__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | エンコードクエリ。 |
[表 : 19. 返される内容]

{#r_ScopedGlideAggregateGetEncodedQuery__table_qpt_3f5_jq}  

    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.getEncodedQuery());

出力:

    ORDERBYcategory^GROUPBYcategory

## スコープ付き GlideAggregate - getRowCount() {#ariaid-title12}

GlideAggregate オブジェクトの行数を取得します。
{#r_ScopedGlideAggregateGetRowCount__table_vy2_535_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 20. パラメーター]

{#r_ScopedGlideAggregateGetRowCount__table_vy2_535_jq} {#r_ScopedGlideAggregateGetRowCount__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 番号 | GlideAggregate オブジェクトの行数。 |
[表 : 21. 返される内容]

{#r_ScopedGlideAggregateGetRowCount__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
      count.addAggregate('MIN', 'sys_mod_count');
      count.addAggregate('MAX', 'sys_mod_count');
      count.addAggregate('AVG', 'sys_mod_count');
      count.groupBy('category');
      count.query();
      gs.info(count.getRowCount());
      while (count.next()) {  
         var min = count.getAggregate('MIN', 'sys_mod_count');
         var max = count.getAggregate('MAX', 'sys_mod_count');
         var avg = count.getAggregate('AVG', 'sys_mod_count');
         var category = count.category.getDisplayValue();
         gs.info(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
      }

出力:

    6
    Database Update counts: MIN = 8 MAX = 48 AVG = 28.0000
    Hardware Update counts: MIN = 4 MAX = 14 AVG = 6.6250
    Inquiry / Help Update counts: MIN = 0 MAX = 34 AVG = 6.5714
    Network Update counts: MIN = 3 MAX = 37 AVG = 18.6000
    Request Update counts: MIN = 5 MAX = 39 AVG = 13.4000
    Software Update counts: MIN = 4 MAX = 98 AVG = 24.0000

## スコープ付き GlideAggregate:getTableName() {#ariaid-title13}

この GlideAggregate オブジェクトに関連付けられたテーブル名を取得します。
{#r_ScopedGlideAggregateGetTableName__table_vc2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 22. パラメーター]

{#r_ScopedGlideAggregateGetTableName__table_vc2_525_jq} {#r_ScopedGlideAggregateGetTableName__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | テーブル名 |
[表 : 23. 返される内容]

{#r_ScopedGlideAggregateGetTableName__table_qpt_3f5_jq}  

    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.getTableName());

## スコープ対象 GlideAggregate:getValue(文字列名) {#ariaid-title14}

指定されたフィールドの値を返します。
{#r_ScopedGlideAggregateGetValue_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 返す現在のテーブル内のフィールドの名前。 |
[表 : 24. パラメーター]

{#r_ScopedGlideAggregateGetValue_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGetValue_String__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 指定されたフィールドの値。無効な場合 (結果セットの一部ではない) は null を返します。 |
[表 : 25. 返される内容]

{#r_ScopedGlideAggregateGetValue_String__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('MAX', 'sys_mod_count');
    count.groupBy('category');
    count.query();   
    while (count.next()) {  
      gs.info(count.getValue('category') + " category had " + count.getAggregate('MAX', 'sys_mod_count') + " updates");  
    }

出力:

    category had 12 updates
    hardware category had 15 updates
    inquiry category had 36 updates
    network category had 37 updates
    software category had 95 updates

## スコープ対象 GlideAggregate:groupBy(文字列名) {#ariaid-title15}

集計のグループ化に使用するフィールドの名前を指定します。
複数のグループフィールドを設定するために、複数回呼び出される場合があります。
{#r_ScopedGlideAggregateGroupBy_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | フィールドの名前 |
[表 : 26. パラメーター]

{#r_ScopedGlideAggregateGroupBy_String__table_vy2_525_jq} {#r_ScopedGlideAggregateGroupBy_String__table_qpt_3f5_jq1__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 27. 返される内容]

{#r_ScopedGlideAggregateGroupBy_String__table_qpt_3f5_jq1}  

    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.info(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
    }

出力:

    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

## スコープ対象 GlideAggregate - hasNext() {#ariaid-title16}

GlideAggregate オブジェクトにさらにレコードがあるかどうかを判定します。
{#r_ScopedGlideAggregateHasNext__table_vy2_535_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 28. パラメーター]

{#r_ScopedGlideAggregateHasNext__table_vy2_535_jq} {#r_ScopedGlideAggregateHasNext__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | クエリセットにそれ以上の結果があるかどうかを示すフラグ。 可能な値： * true:より多くの結果がクエリセットに含まれます。 * false:クエリセットにこれ以上結果はありません。 {#r_ScopedGlideAggregateHasNext__ul_bkh_hhc_dtb} |
[表 : 29. 返される内容]

{#r_ScopedGlideAggregateHasNext__table_qpt_3f5_jq}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('AVG', 'sys_mod_count');
    agg.groupBy('category');
    agg.query();
    while (agg.hasNext()) {
        agg.next();
        var avg = agg.getAggregate('AVG', 'sys_mod_count');
        var category = agg.category.getDisplayValue();
        gs.info(category + ': AVG = ' + avg);
    }

出力:

    Database: AVG = 32.5000
    Hardware: AVG = 12.0000
    Inquiry / Help: AVG = 7.6667
    Network: AVG = 24.0000
    Request: AVG = 16.4000
    Software: AVG = 27.0833

## スコープ付き GlideAggregate - next() {#ariaid-title17}

GlideAggregate の次のレコードに移動します。
{#r_ScopedGlideAggregateNext__table_vy2_535_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 30. パラメーター]

{#r_ScopedGlideAggregateNext__table_vy2_535_jq} {#r_ScopedGlideAggregateNext__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | クエリセットにそれ以上の結果があるかどうかを示すフラグ。 可能な値： * true:より多くの結果がクエリセットに含まれます。 * false:クエリセットにこれ以上結果はありません。 {#r_ScopedGlideAggregateNext__ul_bkh_hhc_dtb} |
[表 : 31. 返される内容]

{#r_ScopedGlideAggregateNext__table_qpt_3f5_jq}  

    var count = new GlideAggregate('incident');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next()) {
       incidents = count.getAggregate('COUNT');
       gs.info(incidents);
    }

## スコープ対象 GlideAggregate - orderBy(文字列名) {#ariaid-title18}

指定されたフィールドの値を使用して集計を並べ替えます。このフィールドはグループ別リストにも追加されます。
{#r_ScopedGlideAggregateOrderBy_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 集計を並べ替えるフィールドの名前。 または、 `glidefunction:length(short_description)` のように、集計を順序付けする glidefunction を指定することもできます。glidefunctions の詳細については、「 [glidefunction 操作](https://www.servicenow.com/docs/access?context=platform-support-functions&version=australia&pubname=australia-platform-administration&ft:locale=en-US)」を参照してください。 |
[表 : 32. パラメーター]

{#r_ScopedGlideAggregateOrderBy_String__table_vy2_525_jq} {#r_ScopedGlideAggregateOrderBy_String__table_qpt_3f5_jq1__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 33. 返される内容]

{#r_ScopedGlideAggregateOrderBy_String__table_qpt_3f5_jq1}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count', 'category'); 
    agg.orderBy('category'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count', 'category');
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count', 'category');
      agg2.orderBy('category');
      gs.info(category + ": Current number of incidents:" + count);
    }

出力:

    database: Current number of incidents:2
    hardware: Current number of incidents:8
    inquiry: Current number of incidents:28
    network: Current number of incidents:5
    request: Current number of incidents:5
    software: Current number of incidents:11

## スコープ対象 GlideAggregate - orderByAggregate(String agg, String fieldName) {#ariaid-title19}

指定されたアグリゲートとフィールドに基づいて集計を順序付けします。
{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_ikq_hwt_vr__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 集計 | 文字列 | アグリゲーションのタイプ |
| fieldName | 文字列 | アグリゲートするフィールドの名前。 |
[表 : 34. パラメーター]

{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_ikq_hwt_vr} {#r_ScopedGlideAggregateOrderByAggregate_String_String__table_jkq_hwt_vr__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 35. 返される内容]

{#r_ScopedGlideAggregateOrderByAggregate_String_String__table_jkq_hwt_vr}  

    ga.addAggregate('COUNT', 'category');
    ga.orderByAggregate('count', 'category');
    ga.query();
    while(ga.next()) {
      gs.info('Category: ' + ga.category + ' ' + ga.getAggregate('COUNT', 'category'));
    }

出力:

    Category: inquiry 18
    Category: software 11
    Category: hardware 7
    Category: network 5
    Category: request 5
    Category:  4
    Category: database 2

## スコープ対象 GlideAggregate - orderByDesc(文字列名) {#ariaid-title20}

指定されたフィールドに基づいて集計を降順でソートします。このフィールドは、グループ別リストにも追加されます。
{#r_ScopedGlideAggregateOrderByDesc_String__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | フィールドの名前 |
[表 : 36. パラメーター]

{#r_ScopedGlideAggregateOrderByDesc_String__table_vy2_525_jq} {#r_ScopedGlideAggregateOrderByDesc_String__table_qpt_3f5_jq1__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 37. 返される内容]

{#r_ScopedGlideAggregateOrderByDesc_String__table_qpt_3f5_jq1}  

    var agg = new GlideAggregate('incident');
    agg.addAggregate('count', 'category'); 
    agg.orderByDesc('category'); 
    agg.query(); 
    while (agg.next()) { 
      var category = agg.category;
      var count = agg.getAggregate('count', 'category');
      var agg2 = new GlideAggregate('incident');   
      agg2.addAggregate('count', 'category');
      agg2.orderBy('category');
      gs.info(category + ": Current number of incidents:" + count);
    }

出力:

    software: Current number of incidents:11
    request: Current number of incidents:5
    network: Current number of incidents:5
    inquiry: Current number of incidents:28
    hardware: Current number of incidents:8
    database: Current number of incidents:2

## スコープ付き GlideAggregate - query() {#ariaid-title21}

クエリを発行し、結果を取得します。
{#r_ScopedGlideAggregateQuery__table_vy2_535_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 38. パラメーター]

{#r_ScopedGlideAggregateQuery__table_vy2_535_jq} {#r_ScopedGlideAggregateQuery__table_qpt_3f5_jq1__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 39. 返される内容]

{#r_ScopedGlideAggregateQuery__table_qpt_3f5_jq1}  

    var count = new GlideAggregate('incident');
    count.addAggregate('COUNT');
    count.query();
    var incidents = 0;
    if (count.next()) {
       incidents = count.getAggregate('COUNT');
    }
    gs.info('Number of incidents: ' + incidents);

## スコープ付き GlideAggregate:setAggregateWindow(Number firstRow, Number lastRow) {#ariaid-title22}

アグリゲートクエリに含めるテーブルの行数を制限します。
{#ScopedGlAgg-setAggregateWindow_N_N__section_tjk_kfm_gtb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 最初の行 | 番号 | アグリゲートクエリに含める最初の行の 0 ベースのインデックス (両端を含む)。 |
| lastRow | 番号 | 集計クエリに含める最後の行のゼロベースのインデックス (排他的)。 |
[表 : 40. パラメーター]

{#ScopedGlAgg-setAggregateWindow_N_N__table_orv_jcm_gtb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 41. 返される内容]

{#ScopedGlAgg-setAggregateWindow_N_N__table_orv_jcm_gtb}  
インシデント \[incident\] テーブルの最初の 10 レコードの各カテゴリの数を出力します。

    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]);
    }

出力：

    database count: 1
    Hardware count: 1
    inquiry count: 7
    software count: 1

## スコープ対象 GlideAggregate - setAggregateWorkflow(ブールワークフロー) {#ariaid-title23}

集計クエリのビジネスルールの実行をアクティブまたは非アクティブにします。
セッションレベルのワークフロー設定 (`gs.getSession().setWorkflow()`) は、このメソッドを上書きします。セッションワークフローを非アクティブ化すると、このメソッドの設定に関係なく、クエリビジネスルールは実行されません。  
警告:  
ビジネスルール、スクリプトエンジン、および監査の実行を無効にすると、 ServiceNow® インスタンスとその動作に大きな影響を与える可能性があります。本番環境に展開する前に、この変更を十分にテストしてください。
{#ScopedGlAgg-setAggregateWorkflow_B__table_vy2_525_jq__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ワークフロー | ブーリアン | 現在の GlideAggregate クエリに対してビジネスルールがアクティブかどうかを示すフラグ。 有効な値： * <kbd class="ph userinput">true</kbd>:現在のクエリのビジネスルールを有効にします。 * <kbd class="ph userinput">false</kbd>:現在のクエリのビジネスルールを非アクティブ化します。 デフォルト値：<kbd class="ph userinput">false</kbd> |
[表 : 42. パラメーター]

{#ScopedGlAgg-setAggregateWorkflow_B__table_vy2_525_jq} {#ScopedGlAgg-setAggregateWorkflow_B__table_cdx_3tb_2r__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 43. 返される内容]

{#ScopedGlAgg-setAggregateWorkflow_B__table_cdx_3tb_2r}  
次の例は、集計クエリのビジネスルールを有効にする方法を示しています。

    var incidentGA = new GlideAggregate('incident');
    incidentGA.setAggregateWorkflow(true); // activate business rules for this aggregate
    incidentGA.addAggregate('COUNT', 'sys_mod_count');
    incidentGA.query();

glide.businessrule.callstack プロパティがシステムプロパティ \[sys_properties\] テーブルにあり、<kbd class="ph userinput">true</kbd> に設定されている場合、出力にはビジネスルール実行ログが含まれます。パフォーマンスへの影響を避けるために、不要な場合はこのプロパティを <kbd class="ph userinput">false</kbd> に設定します。

    BUSINESS RULE - About to execute business rule 'incident query' on incident:<span class = "session-log-bold-text"> </span>
    BUSINESS RULE - Finished executing business rule 'incident query' on incident:<span class = "session-log-bold-text"> </span>

## スコープ対象 GlideAggregate:setGroup(Boolean b) {#ariaid-title24}

返される結果をグループ化するかどうかを設定します。
{#r_ScopedGlideAggregateSetGroup_Boolean__table_w24_dxt_vr__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| b | ブーリアン | 結果をグループ化するかどうかを示すフラグ。 有効な値： * true:結果をグループ化します。 * false:結果をグループ化しません。 {#r_ScopedGlideAggregateSetGroup_Boolean__ul_ylw_phc_dtb} |
[表 : 44. パラメーター]

{#r_ScopedGlideAggregateSetGroup_Boolean__table_w24_dxt_vr} {#r_ScopedGlideAggregateSetGroup_Boolean__table_x24_dxt_vr__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 45. 返される内容]

{#r_ScopedGlideAggregateSetGroup_Boolean__table_x24_dxt_vr}  

    var ga = new GlideAggregate('incident');
    ga.addAggregate('COUNT', 'category');
     
    ga.setGroup(true);
    ga.groupBy("category");
     
    ga.query();
     
    while(ga.next()) {
      gs.info('Category ' + ga.category + ' ' + ga.getAggregate('COUNT', 'category'));
      }

出力:

    Category database 2
    Category hardware 7
    Category inquiry 18
    Category network 5
    Category request 5
    Category software 11

## スコープ対象 GlideAggregate:setIntervalYearIncluded(Boolean b) {#ariaid-title25}

曜日の傾向の結果を年別にグループ化するかどうかを設定します。これらの傾向は、dayofweek時間間隔の addTrend() メソッドを使用して作成されます。
依存関係:[スコープ付き GlideAggregate - addTrend('\<fieldName\>', 'dayofweek')。](https://servicenow-prod.fluidtopics.net/YH3MF48VxvVzg8O89GnOiw#r_ScopedGlideAggAddTrend_S_S "指定されたフィールドの傾向を追加します。傾向を使用して、一定期間のパターンを示します。")
{#ScopedGlAgg-setIntervalYearInclu_B__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| b | ブーリアン | 曜日の時間間隔で傾向に年を含めるかどうかを示すフラグ。 有効な値： * true:曜日の結果を年別にグループ化します。 * false:時間間隔の結果から年を除外します。 {#ScopedGlAgg-setIntervalYearInclu_B__ul_uz2_dph_gzb} デフォルト：true |
[表 : 46. パラメーター]

{#ScopedGlAgg-setIntervalYearInclu_B__table_orv_jcm_gtb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 47. 返される内容]

{#ScopedGlAgg-setIntervalYearInclu_B__table_orv_jcm_gtb}  
次の例は、過去 6 か月間に作成されたインシデントをカウントする方法を示しています。インシデントは曜日ごとに分けられますが、年は含まれません。たとえば、木曜日のデフォルトの結果には年が含まれます ( `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'))};

出力：

    Sunday: 1
    Monday: 15
    Tuesday: 1
    Wednesday: 7
    Thursday: 16
    Saturday: 1


