AggregateFunction

Descripción

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".

Sintaxis

VBScript

queryfielddef.AggregateFunction 
queryfielddef.AggregateFunction newValue 

Perl

$queryfielddef->GetAggregateFunction 
$queryfielddef->SetAggregateFunction(NewValue); 
Identificador
Descripción
queryfielddef
Un objeto QueryFieldDef.
NewValue
Un valor Long que especifica el tipo de función para el campo. El valor corresponde a una de las constantes de DbAggregate.
Valor de retorno
Devuelve un valor Long que identifica el tipo de función para el campo. El valor corresponde a una de las constantes de DbAggregate.

Ejemplo

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); 

Comentarios