Concatenate
Concatenate は、データセットを既存のメモリ内テーブルに吹きできるスクリプト ロード プレフィックスです。これは、異なるトランザクション データのセットを単一の中央ファクト テーブルに追加したり、複数のソースから取得される特定タイプの共通参照データセットを構築したりするためによく使われます。SQL UNION 演算子の機能と似ています。
concatenate 操作で出力されたテーブルには、そのテーブルの下にデータの新しい行が付記された元のデータセットが含まれます。ソースとターゲット テーブルには、異なる項目が含まれている可能性があります。項目が異なる場合、出力されるテーブルは、ソース テーブルとターゲット テーブルの両方に存在するすべての項目を組み合わせた結果を評価するために幅が広くなります。
構文:
Concatenate[ (tablename ) ] ( loadstatement | selectstatement )
引数 | 説明 |
---|---|
tablename | 既存テーブルの名前。命名されたテーブルは Concatenate 操作のターゲットであり、ロードされたレコードはそのテーブルに追加されます。tablename パラメータが使用されない場合、ターゲット テーブルはこのステートメントの前に最後にロードされたテーブルとなります。 |
loadstatement/selectstatement | tablename 引数の後の loadstatement/selectstatement 引数は、指定したテーブルに連結されます。 |
地域の設定
特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの SET DateFormat ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。
App の既定の地域設定は、Qlik Sense がインストールされているコンピューターまたはサーバーの地域システム設定に基づいています。アクセスしている Qlik Sense サーバーがスウェーデンに設定されてい場合、データ ロード エディターは、日付、時間、および通貨にスウェーデンの地域設定を使用します。これらの地域の書式設定は、Qlik Sense ユーザー インターフェースに表示される言語とは関係ありません。Qlik Sense は使用しているブラウザと同じ言語で表示されます。
例 | 結果 |
---|---|
Concatenate(Transactions) Load …. ; | Concatenate プレフィックスの下にある Load ステートメントにロードされたデータは、Transactions という既存のメモリ内テーブルに追加されます (Transactions というテーブルが、ロード スクリプトでこの時点までにロードされたという前提)。 |
例 1 – 連結ロード プレフィックスを使って、複数のデータ セットをターゲット テーブルに追加する
概要
この例では、2 つのスクリプトを順にロードします。
-
最初のロード スクリプトには、Transactions というテーブルに送信される日付と金額を含む初期データセットが含まれています。
-
2 番目のロード スクリプトには次の内容が含まれます:
- Concatenate プレフィックスを使って初期データセットに追加される 2 番目のデータセット。このデータセットには、初期データセットにはなかった追加項目の type があります。
- Concatenate プレフィックス。
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
最初のロード スクリプト
Transactions:
Load * Inline [
id, date, amount
3750, 08/30/2018, 23.56
3751, 09/07/2018, 556.31
3752, 09/16/2018, 5.75
3753, 09/22/2018, 125.00
3754, 09/22/2018, 484.21
3756, 09/22/2018, 59.18
3757, 09/23/2018, 177.42
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
-
id
-
date
-
amount
ID | 日付 | amount |
---|---|---|
3750 | 08/30/2018 | 23.56 |
3751 | 09/07/2018 | 556.31 |
3752 | 09/16/2018 | 5.75 |
3753 | 09/22/2018 | 125.00 |
3754 | 09/22/2018 | 484.21 |
3756 | 09/22/2018 | 59.18 |
3757 | 09/23/2018 | 177.42 |
テーブルには初期データセットが表示されています。
2 番目のロード スクリプト
データ ロード エディタを開き、以下のロード スクリプトを追加します。
Concatenate(Transactions)
Load * Inline [
id, date, amount, type
3758, 10/01/2018, 164.27, Internal
3759, 10/03/2018, 384.00, External
3760, 10/06/2018, 25.82, Internal
3761, 10/09/2018, 312.00, Internal
3762, 10/15/2018, 4.56, Internal
3763, 10/16/2018, 90.24, Internal
3764, 10/18/2018, 19.32, External
];
結果
データをロードしてシートに移動します。この項目を軸として作成します。
-
type
ID | 日付 | amount | タイプ |
---|---|---|---|
3750 | 08/30/2018 | 23.56 | - |
3751 | 09/07/2018 | 556.31 | - |
3752 | 09/16/2018 | 5.75 | - |
3753 | 09/22/2018 | 125.00 | - |
3754 | 09/22/2018 | 484.21 | - |
3756 | 09/22/2018 | 59.18 | - |
3757 | 09/23/2018 | 177.42 | - |
3758 | 10/01/2018 | 164.27 | 内部 |
3759 | 10/03/2018 | 384.00 | 外部 |
3760 | 10/06/2018 | 25.82 | 内部 |
3761 | 10/09/2018 | 312.00 | 内部 |
3762 | 10/15/2018 | 4.56 | 内部 |
3763 | 10/16/2018 | 90.24 | 内部 |
3764 | 10/18/2018 | 19.32 | 外部 |
最初の 7 つのレコードの [type] 項目の null 値がロードされ、type が定義されていないことに注意してください。
例 2 – 黙示的連結を使って、複数のデータ セットをターゲット テーブルに追加する
概要
黙示的にデータを追加する典型的使用例は、同じ構造のデータを持つ複数のファイルをロードし、それらをすべてターゲット テーブルに追加する方法です。
例えば、次のような構文を使ってファイル名に wildcards を使用します:
myTable:
Load * from [myFile_*.qvd] (qvd);
または次のような構造を使ってループに使用します:
for each file in filelist('myFile_*.qvd')
myTable:
Load * from [$(file)] (qvd);
next file
この例では、2 つのスクリプトを順にロードします。
-
最初のロード スクリプトには、Transactions というテーブルに送信される 4 つの項目を含む初期データセットが含まれています。
-
2 番目のロード スクリプトには、最初のデータセットとして同一項目を持つデータセットが含まれます。
データ ロード エディタを開き、以下のロード スクリプトを新しいタブに追加します。
最初のロード スクリプト
Transactions:
Load * Inline [
id, date, amount, type
3758, 10/01/2018, 164.27, Internal
3759, 10/03/2018, 384.00, External
3760, 10/06/2018, 25.82, Internal
3761, 10/09/2018, 312.00, Internal
3762, 10/15/2018, 4.56, Internal
3763, 10/16/2018, 90.24, Internal
3764, 10/18/2018, 19.32, External
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
-
id
-
date
-
amount
-
type
ID | 日付 | タイプ | amount |
---|---|---|---|
3758 | 10/01/2018 | 内部 | 164.27 |
3759 | 10/03/2018 | 外部 | 384.00 |
3760 | 10/06/2018 | 内部 | 25.82 |
3761 | 10/09/2018 | 内部 | 312.00 |
3762 | 10/15/2018 | 内部 | 4.56 |
3763 | 10/16/2018 | 内部 | 90.24 |
3764 | 10/18/2018 | 外部 | 19.32 |
テーブルには初期データセットが表示されています。
2 番目のロード スクリプト
データ ロード エディタを開き、以下のロード スクリプトを追加します。
Load * Inline [
id, date, amount, type
3765, 11/03/2018, 129.40, Internal
3766, 11/05/2018, 638.50, External
];
結果
データをロードしてシートに移動します。
ID | 日付 | タイプ | amount |
---|---|---|---|
3758 | 10/01/2018 | 内部 | 164.27 |
3759 | 10/03/2018 | 外部 | 384.00 |
3760 | 10/06/2018 | 内部 | 25.82 |
3761 | 10/09/2018 | 内部 | 312.00 |
3762 | 10/15/2018 | 内部 | 4.56 |
3763 | 10/16/2018 | 内部 | 90.24 |
3764 | 10/18/2018 | 外部 | 19.32 |
3765 | 11/03/2018 | 内部 | 129.40 |
3766 | 11/05/2018 | 外部 | 638.50 |
2 番目のデータセットは、同一項目があったため、初期データセットに黙示的に連結されました。