AggregateFunction

설명

필드의 SQL 집계 함수를 설정하거나 리턴합니다. 집계 함수를 설정하는 경우, 사용자가 선택하는 함수는 필드 유형에 적합해야 합니다.

예를 들어, 해당 필드에 값이 있는 RECORDS의 계수를 리턴하려면 DB_AGGR_COUNT를 사용합니다. 일반적으로 모든 레코드를 계수하기 때문에 대부분의 경우 계수할 필드로 dbid를 선택합니다. 다른 함수는 최소값, 최대값, 평균값 또는 필드의 합을 리턴합니다. 합 및 평균은 숫자 필드에 대해서만 동작합니다.

예를 들어, "select count(dbid) from defect"는 데이터베이스의 총 결함 수를 리턴합니다.

또한 group-by 필드를 지정하고 다른 일부 필드로 구분한 통계를 가져올 수 있습니다. 예를 들어, "select count(dbid), owner from defect group by owner"는 소유자당 결함 수를 리턴하여 각 소유자당 계수 및 소유자를 표시합니다.

이러한 집계 함수를 select 절에서 다른 필드와 함께 사용하는 것은 group-by 절에도 언급된 경우 이외에는 유효하지 않은 경우가 많습니다. 하지만 "select count(dbid), max(severity), min(due_date), owner group by owner와 같이 둘 이상의 집계 함수를 사용할 수 있습니다.

구문

VBScript

queryfielddef.AggregateFunction 
queryfielddef.AggregateFunction NewValue 

Perl

$queryfielddef->GetAggregateFunction 
$queryfielddef->SetAggregateFunction(NewValue); 
ID
설명
queryfielddef
QueryFieldDef 오브젝트입니다.
NewValue
필드에 대한 함수 유형을 지정하는 Long입니다. 값은 DbAggregate 상수 중 하나에 해당합니다.
Return value
필드의 함수 유형을 식별하는 Long을 리턴합니다. 값은 DbAggregate 상수 중 하나에 해당합니다.

예제

Perl

use CQPerlExt;
#Start a Rational ClearQuest session

#$AdminSession= CQAdminSession::Build();

$SessionObj = CQSession::Build();



$dbsetname = "CQMS.SAMPL.HOME";

#Refresh list of accessible databases

$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname);



#Log into a database

$SessionObj->UserLogon("admin","","SAMPL",$dbsetname);



$querydef = $SessionObj->BuildQuery("defect") ;

$querydef->BuildField("id") ;

$querydef->BuildField("owner.login_name") ;



$queryfielddefs = $querydef->GetQueryFieldDefs();

$idfield = $queryfielddefs->ItemByName("id");

$idfield->SetAggregateFunction($CQPerlExt::CQ_DB_AGGR_COUNT);



$ownerfield = $queryfielddefs->ItemByName("owner.login_name");

$ownerfield->SetIsGroupBy(1);



$resultset = $SessionObj->BuildResultSet($querydef);

$ct = $resultset->ExecuteAndCountRecords();

for ($i = 0; $i < $ct; $i++) {

   $resultset->MoveNext();

   print $resultset->GetColumnValue(1);

   print " ";

   print $resultset->GetColumnValue(2);

   print "\n";

}

CQAdminSession::Unbuild($AdminSession);

CQSession::Unbuild($SessionObj); 

피드백