Load
LOAD ステートメントは、ファイル、スクリプトで定義されたデータ、事前にロードされたテーブル、Web ページ、後続の SELECT ステートメントの結果、または自動生成されたデータから項目をロードします。 分析接続からデータをロードすることもできます。
構文:
LOAD [ distinct ] fieldlist
[( from file [ format-spec ] |
from_field fieldassource [format-spec]|
inline data [ format-spec ] |
resident table-label |
autogenerate size ) |extension pluginname.functionname([script] tabledescription)]
[
where criterion | while criterion
]
[
group by groupbyfieldlist
]
[order by orderbyfieldlist ]
引数distinct | 一意のレコードのみをロードする場合、distinct を述語として使用できます。重複するレコードがある場合は、1 つめのインスタンスがロードされます。 先行する LOAD を使用している場合、distinct はロード先のテーブルにのみ反映されるので、Load ステートメントの先頭に distinct を配置する必要があります。 先行する LOAD |
fieldlist | fieldlist ::= ( * | field{, * | field } ) ロードする項目のリスト。項目リストとして * を使用すると、テーブルのすべての項目が指定されます。 field ::= ( fieldref | expression ) [as aliasname ]項目定義には、リテラル、既存項目への参照、または数式を含める必要があります。 fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )fieldname は、テーブル内の項目名と同じテキストです。項目名にスペースなどが含まれる場合は、ストレート二重引用符または角括弧で囲む必要があります。明示的に表現できない項目名については、次のような表記規則を使用します。 @fieldnumber は、区切り記号付きテーブル ファイルの項目番号を表します。「@」が前に付いた正の整数でなければなりません。常に 1 から項目の数まで、番号が振られています。 @startpos:endpos は、固定長レコードが含まれるファイル内の項目の開始および終了位置を表します。位置はどちらも正の整数でなければなりません。2 つの番号の前に「@」を付け、コロン (:) で区切る必要があります。常に 1 から位置の数までの番号が付けられます。最後の項目で、n は終了位置として使用されます。 - @startpos:endpos の直後に I か U の文字が続く場合は、バイトの読み取りは符号付き (I) バイナリまたは符号なし (U) の整数 (Intel のバイト順) と解釈されます。読み取られる位置の数は、1、2、または 4 です。
- @startpos:endposの直後に文字 R が続く場合は、読み取られるバイトはバイナリの実数 (IEEE 32 ビットまたは 64 ビットの浮動小数点) として解釈されます。読み取られる位置の数は、4 または 8 です。
- @startpos:endpos の直後に文字 B が続く場合は、読み取られるバイトは COMP-3 標準に従った BCD (Binary Coded Decimal) 数として解釈されます。任意のバイト数を指定できます。
expression は、同じテーブルにある 1 つまたは複数の項目に基づいた数値関数または文字列関数です。詳細については、数式の構文を参照してください。 項目に新しい名前を割り当てるには、as を使用します。 |
from | from は、フォルダを使用してファイルからデータをロードする必要がある場合に使用します。Qlik Cloud Analytics のスペース内のファイルからロードする場合は、有効なパスを使用する必要があります。「有効なスペース フォルダー パスのルール」を参照してください。 file ::= [ path ] filename Qlik Cloud Analytics では、階層的なフォルダー構造がサポートされており、ステートメント内で参照できます。 個人スペース (トップレベル パス): [lib://DataFiles/abc.qvd] 個人スペース (ネストされたフォルダー): [lib://DataFiles/MyFolder/abc.qvd] 共有スペース (トップレベル パス): [lib://TeamSharedSpace:DataFiles/xyz.qvd] 共有スペース (ネストされたフォルダー): [lib://TeamSharedSpace:DataFiles/MyFolder/abc.qvd]
詳細および例については、「Qlik Cloud Analytics のスペースからのファイルのロード」を参照してください。 |
from_field | 事前にロードされた項目からデータをロードする場合は、from_field を使用します。 fieldassource::=(tablename, fieldname) 項目は、事前にロードされた tablename と fieldname の名前です。 format-spec ::= ( fspec-item {, fspec-item } )この書式指定は、括弧に囲まれた複数の書式指定アイテムのリストで構成されます。詳細については、「書式指定アイテム」を参照してください。 情報メモfrom_field は、テーブルの項目を区切るときのリスト区切り記号として、カンマのみをサポートします。 |
inline | スクリプト内でデータを入力し、ファイルからロードしない場合は、inline を使用します。 data ::= [ text ] inline 句を通じて入力されるデータは、角括弧、引用符、またはバックティックなどの特定の文字で囲む必要があります。括弧で囲まれたテキストは、ファイルのコンテンツと同じ方法で解釈されます。そのため、テキスト ファイル内で新しい行を挿入する場合は、inline 句のテキスト内でも新しい行を挿入する必要があります。つまり、スクリプトを入力するときに Enter キーを押します。 単純なインライン ロードでは、列の数は最初の行で定義されます。 format-spec ::= ( fspec-item {, fspec-item } )他のロードされたテーブルで使用できる同じ書式指定アイテムの多くを使用して、インライン ロードをカスタマイズできます。これらのアイテムは括弧内にリストされています。詳細については、「書式指定アイテム」を参照してください。 インライン ロードの詳細については、「インライン ロードを使用したデータのロード」を参照してください。 |
resident | 事前にロード済みのテーブルからデータをロードする場合は、resident を使用します。 table label は、元のテーブルを作成した LOAD または SELECT ステートメントの前に配置されるラベルです。ラベルの最後にはコロン (:) を記述します。 事前にロードされているテーブルからのデータのロード テーブル ラベル |
autogenerate | Qlik Sense でデータを自動生成する場合は、autogenerate を使用します。 size ::= number Number は、生成するレコード数を示す整数です。 Peek 関数を使用して、以前にロードされたテーブルの 1 つの項目値を参照しない限り、項目のリストには、外部データ ソースまたは以前にロードされたテーブルからデータを取得する必要のある数式を記述できません。 |
where | where 節は、レコードを選択に含めるかどうかを示します。criterion が True の場合は選択が含まれます。 criterion は論理式です。 |
while | while は、レコードを繰り返し読み取るかどうかを示す節です。criterion が True の場合は、同じレコードが読み取られます。通常、while 節には IterNo( ) 関数が含まれていなければなりません。 criterion は論理式です。 |
group by | データを集計 (グループ化) すべき項目を定義するには、group by 節を使用します。 集計項目は、ロードする数式に挿入しなければなりません。集計項目以外の項目は、ロードした数式に含まれる集計関数の外部で使用できます。 groupbyfieldlist ::= (fieldname { ,fieldname } ) |
order by | order by 節は、load ステートメントで処理される前に、常駐テーブルのレコードをソートします。1 つ以上の項目の昇順または降順で、常駐テーブルをソートできます。最初に数値、次に各国の照合順でソートされます。この節は、データ ソースが常駐テーブルの場合に限り使用できます。 順序項目は、常駐テーブルをソートする項目を指定します。項目は、名前または常駐テーブル内での番号 (最初の項目が番号 1) で指定できます。 orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] } sortorder は、昇順の asc または降順の desc のどちらかになります。sortorder を指定しない場合は、asc と見なされます。 fieldname、path、filename、aliasname は、それぞれの名前を示すテキスト文字列です。ソース テーブルのフィールドは fieldname として使用できます。ただし、as 節 (aliasname) を使用して作成された項目は範囲外になり、同じ load ステートメント内では使用できません。 |
from、inline、resident、from_field、extension、または autogenerate 節でデータのソースが指定されない場合、データは直後の SELECT または LOAD ステートメントの結果からロードされます。後続のステートメントには、プレフィックスを記述できません。
事前にロードされているテーブルからのデータのロード
情報メモDataFiles 接続のファイル拡張子は大文字と小文字を区別します。例: .qvd。
区切り記号付きファイルから特定の 3 項目のみロードします。
LOAD FirstName, LastName, Number from [lib://DataFiles/data1.csv];
ラベルなしでファイルをロードする場合、Rename 最初の項目の名前を A に変更し、2 番目の項目の名前を B に変更します。
LOAD @1 as A, @2 as B from [lib://DataFiles/data3.txt] (ansi,
txt, delimiter is '\t', no labels);
Name を、FirstName、空白文字、および LastName の連結としてロードします。
LOAD FirstName&' '&LastName as Name
from [lib://DataFiles/data1.csv];
Quantity、Price、およびValue (QuantityとPriceの積) をロードします。
LOAD Quantity, Price, Quantity*Price as Value
from [lib://DataFiles/data1.csv];
一意のレコードのみロードします。複製されたレコードは破棄されます。
LOAD distinct FirstName, LastName, Number from [lib://DataFiles/data1.csv];
項目 Litres がゼロ (0) より大きい値を持つレコードのみロードします。
LOAD * from [lib://DataFiles/Consumption.csv] where Litres>0;
CatIDおよび Category という 2 項目のインライン データを持つテーブルをロードします。
LOAD * Inline
[CatID, Category
0,Regular
1,Occasional
2,Permanent];
UserID、Password、および Access という 3 項目のインライン データを持つテーブルをロードします。
LOAD * Inline [UserID, Password, Access
A, ABC456, User
B, VIP789, Admin];
10 000 行を持つテーブルをロードします。項目 A には、読み取られたレコード (1,2,3,4,5...) の数が含まれ、項目 B には 0 ~ 1 間の乱数が含まれます。
LOAD RecNo( ) as A, rand( ) as B autogenerate(10000);
情報メモautogenerate 後の丸かっこはオプションです。
最初に、区切り記号付きテーブル ファイルをロードし、tab1 という名前を付けます。
tab1:
SELECT A,B,C,D from [lib://DataFiles/data1.csv];
ロード済みのテーブル tab1 から tab2 として項目をロードします。
tab2:
LOAD A,B,month(C),A*B+D as E resident tab1;
ロード済みのテーブル tab1 から項目 (ただし、A が B より大きいレコードのみ) をロードします。
tab3:
LOAD A,A+B+C resident tab1 where A>B;
ロード済みのテーブル tab1 から、A によって指定された項目をロードします。
LOAD A,B*C as E resident tab1 order by A;
ロード済みのテーブル tab1 から、最初の項目によって指定された項目をロードし、次に 2 番目の項目によって指定された項目をロードします。
LOAD A,B*C as E resident tab1 order by 1,2;
ロード済みのテーブル tab1 から、C によって指定された項目を降順でロードし、次に B によって指定された項目を昇順でロードし、最初の項目を降順でロードします。
LOAD A,B*C as E resident
tab1 order by C desc, B asc, 1 desc;
ロード済みのテーブル Characters から、項目Types を A としてロードします。
LOAD A from_field (Characters,
Types);
後続の SELECT ステートメントにロードされている Table1 から、A、B、および計算された項目 X と Y をロードします。
LOAD A, B, if(C>0,'positive','negative')
as X, weekday(D) as Y;
SELECT A,B,C,D from Table1;
ArtNoによってグループ化 (集計) された項目をロードします。
LOAD ArtNo, round(Sum(TransAmount),0.05) as
ArtNoTotal from table.csv group by ArtNo;
Weekと ArtNoによってグループ化 (集計) された項目をロードします。
LOAD Week, ArtNo, round(Avg(TransAmount),0.05)
as WeekArtNoAverages from table.csv group by Week, ArtNo;
この例では、ひとつの項目に各生徒の成績が要約して含まれている、入力ファイル Grades.csv があります。
Student,Grades
Mike,5234
John,3345
Pete,1234
Paul,3352
成績は、1 から 5 に分かれていて、科目 Math、English、Science、および History を表しています。IterNo( ) 関数をカウンタとして使用して、各レコードを複数回、while 句で読み取り、成績を個々の値に分けることができます。読み取るたびに、Mid 関数で成績が抽出され、Grade に保存され、科目が pick 関数を使用して選択され、Subject に保存されます。最後の while 節には、全成績が読み取られたか確認するテスト (この場合、生徒 1 人に付き 4 教科分) が含まれています。その後、次の生徒の成績を読み取ります。
MyTab:
LOAD
Student,
mid(Grades,IterNo(
),1) as Grade,
pick(IterNo(
), 'Math', 'English', 'Science', 'History') as Subject from [lib://DataFiles/Grades.csv]
while IsNum(mid(Grades,IterNo(),1));
結果は、このデータが含まれるテーブルにあります。

次のサンプル データを使用します。
Values:
Load
Rand() as A,
Rand() as B,
Rand() as C
AutoGenerate(50);
関数を使用したデータのロード
以下の例では、カスタム関数 Calculate(Parameter1, Parameter2) を含む P という名前の分析接続プラグインがあるものと仮定しています。この関数は、Field1 および Field2 という項目を含む、テーブル Results を返します。
Load * Extension P.Calculate( Values{A, C} );
項目 A および C を関数に送るときに返されるすべての項目をロードします。
Load Field1 Extension P.Calculate( Values{A, C} );
項目 A および C を関数に送るときに項目 Field1 のみをロードします。
Load * Extension P.Calculate( Values );
項目 A および B を関数に送るときに返されるすべての項目をロードします。項目が指定されていない場合、A および B がテーブル内の順序で最初に使用されます。
Load * Extension P.Calculate( Values {C, C});
項目 C を関数の両方のパラメータに送るときに返されるすべての項目をロードします。
Load * Extension P.Calculate( Values {String(A), Mixed(B)});
文字列として指定された項目 A および数値として指定された B を関数に送るときに返されるすべての項目をロードします。
スクリプト評価によるデータのロード
Load A as A_echo, B as B_echo Extension R.ScriptEval( 'q;', Values{A, B} );
A および B の値を送るときにスクリプト q によって返されるテーブルをロードします。
Load * Extension R.ScriptEval( '$(My_R_Script)', Values{A, B} );
A および B の値を送るときに My_R_Script 変数に格納されるスクリプトによって返されるテーブルをロードします。
Load * Extension R.ScriptEval( '$(My_R_Script)', Values{B as D, *} );
D、A および C に名前が変更された B の値を送るときに My_R_Script 変数に格納されるスクリプトによって返されるテーブルをロードします。* を使用して、参照されていない残りの項目を送信します。
Qlik Cloud Analytics のスペースからのファイルのロード
Qlik Cloud Analytics では、ロード スクリプト内でデータ ファイルからデータをロードするときに、LOAD ステートメントを使用したり、QVS コードを挿入したりできます。どちらの場合も、階層的なスペース フォルダー構造をスクリプト ステートメントで参照できます。有効なスペース フォルダー パスのルールに従ってください。さらに、ファイルと参照されるすべてのフォルダーが、指定された場所に既に存在している必要があります。存在していない場合、リロードは失敗します。
スペースのトップレベル パスにあるファイルへの参照
この例では、個人スペースからファイル orders.csv をロードします。ファイルは特定のフォルダー内ではなく、スペース内のトップレベル パスに配置されます。
LOAD * FROM [lib://DataFiles/orders.csv];
この例では、共有スペース、管理スペース、またはデータ スペースからファイル orders.csv をロードします。スペースの名前は TeamSharedSpace です。ファイルは特定のフォルダー内ではなく、スペース内のトップレベル パスに配置されます。
LOAD * FROM [lib://TeamSharedSpace:DataFiles/orders.csv];
スペース内の特定のフォルダー パスへの参照
この例では、個人スペース内のフォルダー Orders By Region からファイル orders_Europe.csv をロードします。
LOAD * FROM [lib://DataFiles/Orders By Region/orders_Europe.csv];
この例では、共有スペース、管理スペース、またはデータ スペース内のフォルダー Orders By Region からファイル orders_Europe.csv をロードします。スペースの名前は SalesSpace です。
LOAD * FROM [lib://SalesSpace:DataFiles/Orders By Region/orders_Europe.csv];
ロード スクリプトでスペース フォルダー構造を参照する方法の詳細については、「アプリおよびスクリプト開発におけるスペース フォルダー構造の参照」を参照してください。