CROSSTAB コマンド
2 つ以上の文字または数値フィールドの値の等しい組み合わせに基づいてレコードをグループ化し、結果のグループを行と列のグリッドに表示します。各グループのレコード数をカウントし、指定した数値フィールドの小計をグループごとに求めます。
構文
CROSSTAB <ON> 行フィールド <...n> COLUMNS 列フィールド <SUBTOTAL {数値フィールド <...n>|SUBTOTAL ALL> TO {SCREEN|テーブル名|ファイル名|GRAPH|PRINT} <IF テスト> <WHILE テスト> <FIRST 範囲|NEXT 範囲> <APPEND> <COUNT> <OPEN> <LOCAL> <HEADER ヘッダー テキスト> <FOOTER フッター テキスト>
パラメーター
名前 | 説明 |
---|---|
ON 行フィールド <...n> |
結果として生じる行列グリッドの行に使用する、フィールドまたは式。行の基準として、1 つ以上のフィールドや式を指定できます。 |
COLUMNS 列フィールド |
結果として生じる行列グリッドの列に使用する、フィールドまたは式。列に使用するフィールドや式は、1 つしか指定できません。 |
SUBTOTAL 数値フィールド <...n> | SUBTOTAL ALL 省略可能 |
グループごとに小計を計算する 1 つ以上の数値フィールドまたは式。 複数のフィールドはスペースで区切る必要があります。テーブル内のすべての数値フィールドについて小計を求める場合は ALL を指定します。 |
TO SCREEN | テーブル名 | ファイル名 | GRAPH | PRINT |
コマンドの結果を送信する場所:
|
IF テスト 省略可能 |
各レコードを処理するために真である必要がある条件式。コマンドは、その条件を満たすレコードに対してのみ実行されます。 メモ IF パラメーターは、任意の範囲パラメーター(WHILE、FIRST、NEXT)が適用された後に、テーブルに残るレコードに対してのみ評価されます。 |
WHILE テスト 省略可能 |
各レコードを処理するために真である必要がある条件式。条件が false と評価するか、テーブルの最後に達したら、コマンドは実行を中止します。 メモ WHILE を FIRST または NEXT とともに使用する場合は、1 つの制限に達するとすぐに、レコードの処理が停止します。 |
FIRST 範囲 | NEXT 範囲 省略可能 |
処理するレコード数:
範囲は処理するレコード数を指定します。 FIRST と NEXT を省略すると、すべてのレコードがデフォルトで処理されます。 |
APPEND 省略可能 |
コマンドの出力を既存ファイルに上書きしないで、そのファイルの末尾に追加します。 メモ コマンドの出力と既存のファイルの構造が同一であるようにする必要があります。
出力は、既存ファイルとの間でファイル構造が違っている場合でも、Analytics によって既存ファイルに追加されます。出力と既存のファイルの構造が一致しない場合は、データが混在、不足、不正確になります。 |
COUNT 省略可能 |
レコード数が列に挿入されます。カウントは、SUBTOTAL を使用する場合に便利です。 小計フィールドが何も選択されていない場合は、自動的にカウントが含められます。 |
OPEN 省略可能 |
コマンドを実行した後、コマンドによって作成されたテーブルを開きます。コマンドが出力テーブルを作成する場合にのみ有効です。 |
LOCAL 省略可能 |
Analytics プロジェクトと同じ場所に出力ファイルを保存します。 メモ Analytics テーブルである出力ファイルを含むサーバー テーブルに対してコマンドを実行するときにのみ適用されます。 |
HEADER ヘッダーテキスト 省略可能 |
レポートの各ページの最上部に挿入されるテキスト。 ヘッダーテキストは引用符で囲んだ文字列として指定する必要があります。この値は、Analytics のシステム変数である HEADER の値よりも優先されます。 |
FOOTER フッターテキスト 省略可能 |
レポートの各ページの最下部に挿入されるテキスト。 フッターテキストは引用符で囲んだ文字列として指定する必要があります。この値は、Analytics のシステム変数である FOOTER の値よりも優先されます。 |
例
SUBTOTAL を使って売掛金(Ar)テーブルをクロス集計する
顧客番号(Customer_Number)フィールドと取引タイプ(Trans_Type)フィールドを基準にして売掛金(Ar)テーブルをクロス集計したいとします。また、取引金額(Trans_Amount)フィールドの値の小計も求めたいとします。
出力は顧客別にグループ化され、さらに各顧客内では取引タイプ別にグループ化されます。出力には、取引タイプごとに各顧客の総取引額が含まれます。
OPEN Ar CROSSTAB ON Customer_Number COLUMNS Trans_Type SUBTOTAL Trans_Amount COUNT TO SCREEN
売掛金(Ar)テーブルをクロス集計することで重複取引を検出する
売掛金(Ar)テーブルから重複取引の証拠を検出したいとします。
これを行うには、売掛金テーブルを取引金額(Trans_Amount)フィールドと取引タイプ(Trans_Type)フィールドに基づいてクロス集計します。出力では、取引タイプごとに同一の取引額がグループ化され、カウントされます。
OPEN Ar CROSSTAB ON Trans_Amount COLUMNS Trans_Type TO SCREEN
備考
メモ
このコマンドの動作の詳細については、Analytics のヘルプを参照してください。
機能の仕組み
CROSSTAB は、2 つ以上の文字または数値フィールドの値で、同じ組み合わせを持つレコードをグループ化します。
出力には、ピボット テーブルと似た行と列で構成されるグリッドが含まれます。出力にはグループごとに 1 つの行と列の交差が含まれるほか、そのグループに属するソース テーブル内のレコードの数が含まれます。
並べ替えと CROSSTAB
CROSSTAB では、データは並べ替えられていてもいなくても処理できます。出力の行フィールドと列フィールドは、どちらも自動的に昇順に並べ替えられます。
複数の行フィールドを指定した場合、フィールドは、最初に指定された行フィールドを 1 番目の並べ替えフィールドとして、入れ子の並べ替えを使用します。