---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

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) 소요 시간: 32분

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(문자열 집계, 문자열 이름) {#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이 아닌 모든 값을 오름차순으로 연결하고, 중복 항목을 제거하고, 쉼표(',')로 조인하고, 결과를 문자열로 반환합니다. * 최대값: 최대 또는 최대값입니다. * MIN: 최소값입니다. * STDDEV: 모집단 표준 편차입니다. * SUM: 모든 값의 합계입니다. |
| 이름 | 문자열 | 옵션입니다. 집계 결과를 그룹화 기준으로 사용할 필드의 이름입니다. 기본값: 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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 쿼리 | 문자열 | 집계에 추가할 인코딩된 쿼리입니다. |
[표 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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | 추가할 쿼리입니다. |
| 운영자 | 문자열 | 쿼리의 연산자입니다. |
| 값 | 문자열 | 쿼리에 포함할 값의 목록입니다. |
[표 6. 매개변수]

{#r_ScopedGlideAggregateAddQuery_String_String_String__table_vy2_525_jq} {#r_ScopedGlideAggregateAddQuery_String_String_String__table_qpt_3f5_jq__entry__2}

| 유형 | 설명 |
|-|-|
| GlideQuery조건 | 쿼리 조건입니다. |
[표 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}

| 유형 | 설명 |
|-|-|
| GlideQuery조건 | 범위가 지정된 쿼리 조건입니다. |
[표 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(String 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}

| 유형 | 설명 |
|-|-|
| GlideQuery조건 | 범위가 지정된 쿼리 조건입니다. |
[표 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(부울 b)](https://servicenow-prod.fluidtopics.net/aQ4634~sEV1EWds5J98anw#ScopedGlAgg-setIntervalYearInclu_B "요일 추세에 대한 결과를 연도별로 그룹화할지 여부를 설정합니다. 이러한 추세는 시간 간격과 함께 addTrend() 메서드를 사용하여 생성됩니다.dayofweek").
{#r_ScopedGlideAggAddTrend_S_S__table_tlk_cdk_ws__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| fieldName | 문자열 | 추세가 발생해야 하는 필드의 이름입니다. |
| 시간 간격 | 문자열 | 추세의 시간 간격입니다. 유효한 값은 다음과 같습니다. * 날짜 * 요일 * 시간 * 분 * 분기 * 값 * 주 * 년 {#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이 아닌 모든 값을 오름차순으로 연결하고, 중복 항목을 제거하고, 쉼표(',')로 조인하고, 결과를 문자열로 반환합니다. * 최대값: 최대 또는 최대값입니다. * MIN: 최소값입니다. * STDDEV: 모집단 표준 편차입니다. * SUM: 모든 값의 합계입니다. |
| 이름 | 문자열 | 집계를 수행할 필드의 이름입니다. |
[표 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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | 반환할 현재 테이블 내의 필드 이름입니다. |
[표 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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | 필드의 이름입니다. |
[표 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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | 집계의 순서를 정렬할 필드의 이름입니다. 또는 `glidefunction:length(short_description)`와 같이 집계를 정렬하는 glidefunction을 제공할 수 있습니다. glide함수에 대한 자세한 내용은 [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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | 필드의 이름입니다. |
[표 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부터 시작하는 인덱스입니다(포함). |
| 마지막 행 | 번호 | 집계 쿼리에 포함할 마지막 행의 0부터 시작하는 인덱스입니다(제외). |
[표 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">예</kbd>로 설정된 경우 출력에 비즈니스 규칙 실행 로그가 포함됩니다. 성능에 미치는 영향을 방지하기 위해 필요하지 않은 경우 이 속성을 <kbd class="ph userinput">아니오</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(부울 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(부울 b) {#ariaid-title25}

요일 추세에 대한 결과를 연도별로 그룹화할지 여부를 설정합니다. 이러한 추세는 시간 간격과 함께 addTrend() 메서드를 사용하여 생성됩니다.dayofweek
종속성: [범위가 지정된 GlideAggregate - addTrend("\<fieldName\>", "dayofweek")](https://servicenow-prod.fluidtopics.net/aQ4634~sEV1EWds5J98anw#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


