ページのトップに戻る
Interstage Data Effector ユーザーズガイド

A.3.1 集計式の書式

集計式の定義を以下の図に示します。


図A.23 入力ファイルタイプがCSVの場合


図A.24 項目参照


図A.25 入力ファイルタイプがXMLの場合


図A.26 項目参照

図A.27 数値演算式


項目名

入力ファイルにおける、処理の対象とする項目を項目名で指定します。
関数のパラメタでない場合、グループ内の任意の1レコードの項目の内容をそのまま返します。

仮想項目名

仮想項目名は、仮想項目定義で定義される仮想項目の値を返します。

参照

仮想項目機能の詳細は、“A.7 仮想項目機能”を参照してください。


テキスト式

入力ファイルにおける、処理の対象とする要素をテキスト式で指定します。
関数のパラメタでない場合、グループ内の任意の1レコードのテキストノードの内容をそのまま返します。


図A.28 テキスト式の定義

注意

  • パス式のパス演算子に“//”は指定できません。

  • パス式のパス要素に“*”は指定できません。

  • パス式については、“A.1.5 パス式”を参照してください。


substr関数

substr関数は、項目参照で示す文字列の、指定した位置の文字から指定した文字長の文字列を返却します。


rtrim関数

rtrim関数は、項目参照に指定された文字列の終端にある、連続する半角空白、水平タブ、および改行コード(CRおよびLF)を取り除いた文字列を返却します。


val関数

グループ内の任意の1レコードについて、項目参照で示される内容から数値だけを抜き出し、その値を返却します。

参照

詳細については、以下を参照してください。

定数

集合関数指定

集合関数は、グループ内の入力レコード全体に対し、関数のパラメタに指定した項目参照の内容を集計した値を返します。
集合関数のパラメタに指定した項目参照で指定した項目、およびテキストノードが入力レコード中に存在しない場合や、空の場合は、集計の対象に含めません。詳細については、“A.3.2 数値演算式における空の扱い”を参照してください。
sum関数、max関数、min関数およびavg関数は、項目参照で指定した文字列から数値を抜き出して、その数値を集計します。項目から数値を抜き出す規則は、val関数と同じです。先頭の0を除き、整数部が18桁を超えるとエラーとなります。
sum関数、max関数、min関数およびavg関数は、セミコロン(;)で区切って、複数の項目参照を記述できます。


参照

詳細については、以下を参照してください。


ラベル

出力データにおいて項目名、またはタグ名として使用される文字列を指定します。
ラベルを指定する場合、その前の指定内容が項目参照または定数のときには、ラベルの前に半角空白を指定する必要があります。


日時関数

日時関数名と参照先を以下に示します。

表A.13 日時関数名と分類

分類

日時関数名

参照先

数値関数

extract_date関数

A.10.5

extract_time関数

A.10.6

extract_datetime関数

A.10.7

日時値関数

convert_datetime関数

A.10.4

時刻関数

convert_time関数

A.10.3

日付値関数

convert_date関数

A.10.2

round_date関数

A.10.8

round_datetime関数

A.10.9

trunc_date関数

A.10.10

trunc_datetime関数

A.10.11


参照

日時関数の詳細については、“A.10 日時関数”を参照してください。


注意

  • 集計結果を抽出機能や連結機能の入力ファイルとして指定する場合には、ラベルを必ず記述してください。記述しない場合には、他機能との連携ができない場合があります。

  • 集計式に「sum($val)」と記述し、ラベルが指定されていない場合には、出力される項目名称は「sum(val)」となります。

  • 集計式に「sum($val)」と記述し、集計式の結果がオーバーフローとなった場合には、出力ファイルに「"ERR(=sum(数値))"」が出力され、処理を継続します。

    • コマンド利用時は、shunanalyzeコマンドは終了ステータスとして「警告」が返却されます。

    • C API利用時は、AsisExecuteAnalyze関数はエラーで復帰し、エラーレベル「警告」が設定されます。

  • 算術演算を使用した集計式「sum($val)*1000」を記述し、結果がオーバーフローとなった場合には、出力ファイルに「"ERR(=sum(数値)*1000")が出力されます。

  • 「数値」には、オーバーフローした集計結果が出力されますが、集計結果が27桁を超えた場合には、出力ファイルは出力されません。

  • 集計式に「sum($val)/min($val)」と記述し、min($val)の結果が0となった場合には、「"ERR(=sum(数値)/min(0))"」と出力され、処理を継続します。

    • コマンド利用時は、shunanalyzeコマンドは終了ステータスとして「警告」が返却されます。

    • C API利用時は、AsisExecuteAnalyze関数はエラーで復帰し、エラーレベル「警告」が設定されます。