AggregateFunction

説明

フィールドの SQL 集約関数を設定または戻します。集約関数を設定する場合、選択する関数がフィールド タイプにとって意味のあるものでなければなりません。

例えば、DB_AGGR_COUNT を使用して、そのフィールドに何らかの値のあるレコードのカウントを戻します。一般的にはすべてのレコードのカウントを意図するので、カウントするフィールドとして通常は DBID を選択します。他の関数は、フィールドの最小値、最大値、平均値、合計のいずれかを戻します。合計および平均は、数値フィールドの場合のみ動作します。

例えば、「select count(dbid) from defect」では、データベース内の障害の合計数が戻されます。

また group-by フィールドを指定して、他のいくつかのフィールドによって破壊された統計情報を取得することもできます。例えば、「select count(dbid), owner from defect group by owner」では、所有者あたりの障害数が戻され、各所有者について、カウントと所有者が表示されます。

選択文節内でこれらの集約関数を他のフィールドと混在することは、それらが 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); 
識別子
説明
queryfielddef
QueryFieldDef オブジェクト。
NewValue
フィールドの関数タイプを指定する Long。 値は、DbAggregate 定数の 1 つに対応します。
戻り値
フィールドの関数タイプを識別する Long を戻します。 値は、DbAggregate 定数の 1 つに対応します。

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

フィードバック