필드의 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);
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);