集計を行う場合は、テキスト式、属性式、単一行関数指定または集合関数指定をリターン式に指定します。“,”で区切って複数指定することができます。1つ以上の集合関数指定を含む必要があります。
集計を行う場合にはソート式を指定する必要があります。
ソート式の詳細は、“B.5 ソート式”を参照してください。
集計は、ソート式に指定したテキスト式、属性式または単一行関数指定をキーとしてソートを実施して、ソートキーが同じものを1つのグループとみなして集合関数指定の結果を求めます。
図B.16 集計を行う場合の書式
リターン項目について、以下に示します。
テキスト式は、集計のキーを取り出す場合に指定します。
テキスト式の詳細な書式は、“B.2.2 テキスト式”を参照してください。
テキスト式には、ソート式に指定したテキスト式のみ指定できます。集計のキーとして使用した値を返却します。
/doc/company/employee/dept/text()
属性式は、集計のキーを取り出す場合に指定します。
属性式の詳細な書式は、“B.2.3 属性式”を参照してください。
属性式で指定する属性名に“*”は指定できません。
属性式には、ソート式に指定した属性式のみ指定できます。集計のキーとして使用した値を返却します。
/doc/company/employee/@position
単一行関数指定は、集計のキーとして単一行関数指定を使用したとき、その値を取り出す場合に指定します。
単一行関数指定の詳細な書式は、“B.2.4 単一行関数指定”を参照してください。
単一行関数指定には、ソート式に指定した単一行関数指定のみ指定できます。集計のキーとして使用した値を返却します。
rlen(/doc/company/employee/name/text(),3)
rlen(/doc/company/employee/@position,3)
集合関数指定は、引数のテキスト式または属性式で指定した値を集計します。
以下に集合関数指定の定義を以下の図に示します。
図B.17 集合関数指定の定義
テキスト式で指定したテキストノードまたは属性式で指定した属性ノードが文書中にない場合は、集計の対象に含めません。
集合関数の引数となるテキスト式または属性式が示す値がない場合は、集計の対象に含めません。
avg関数、sum関数、max関数、min関数は、テキスト式または属性式で指定した文字列から数値を抜き出して、その数値を集計します。テキスト式または属性式で指定した文字列から数値を抜き出す規則は、単一行関数指定のval関数と同じです。
集合関数の結果は、整数部が18桁を超えるとエラーとなります。集計の途中結果の整数部が18桁を超えてもエラーにはなりません。
注意
テキスト式または属性式中にパス演算子“//”は指定できません。
テキスト式または属性式中にパス要素“*”は指定できません。