すべて展開 / 折りたたむ
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
fieldlistfieldlist ::= ( * | 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);
後続のテーブルからのデータのロード (先行する LOAD) 後続の 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;
1 つのレコードの反復読み取り この例では、ひとつの項目に各生徒の成績が要約して含まれている、入力ファイル 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];
コードをクリップボードにコピーします
ロード スクリプトでスペース フォルダー構造を参照する方法の詳細については、「アプリおよびスクリプト開発におけるスペース フォルダー構造の参照 」を参照してください。