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