Imposta o restituisce una funzione di aggregazione SQL per il campo. Durante l'impostazione di una funzione di aggregazione, la funzione selezionata deve essere adatta al tipo di campo.
Ad esempio, utilizzare DB_AGGR_COUNT per restituire il conteggio di RECORD che hanno un qualche valore in tale campo. Di solito, si sceglierebbe dbid come campo per il conteggio, poiché di solito si intende conteggiare tutti i record. Le altre funzioni restituiscono il valore minimo, il valore massimo, il valore medio oppure la somma di un campo. La somma e la media funzionano solo per i campi numerici.
Ad esempio, "select count(dbid) from defect" restituisce il numero totale di difetti nel database.
È inoltre possibile specificare un campo di raggruppamento e ottenere la statistica suddivisa da altri campi. Ad esempio, "select count(dbid), owner from defect group by owner" restituisce il numero di difetti per proprietario, visualizzando il conteggio e il proprietario per ciascun proprietario.
Mischiare tali funzioni di aggregazione con altri campi nella clausola select è di solito un'operazione non valida, a meno che non vengano anche menzionate in una clausola group by. Tuttavia, è possibile disporre di più di un'aggregazione, come ad esempio "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);