Establece o devuelve una función de agregación de SQL para el campo. Al establecer una función de agregación, la función que se selecciona debe tener sentido para el tipo de campo.
Por ejemplo, utilice DB_AGGR_COUNT para que se devuelva el recuento de RECORDS que tienen algún valor en dicho campo. Normalmente, se elige dbid como campo para el recuento, puesto que, por lo general, se pretende contar todos los registros. Las otras funciones devuelven el valor mínimo, el valor máximo, el valor de promedio o la suma de un campo. La suma y el promedio sólo funcionan para campos numéricos.
Por ejemplo, "select count(dbid) from defect" devuelve el número total de defectos de la base de datos.
También puede especificar un campo de agrupar por, y obtener la estadística desglosada por algún otro campo. Por ejemplo, "select count(dbid), owner from defect group by owner" devuelve el número de defectos por propietario, y muestra el recuento y el propietario para cada propietario.
Por lo general, la combinación de estas funciones de agregación con otros campos en la cláusula de selección, no es válida a menos que también se indique en una cláusula de agrupar por. Puede tener más de una agregación, por ejemplo, "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);