メイン コンテンツをスキップする 補完的コンテンツへスキップ

autonumber - スクリプト関数

このスクリプト関数は、スクリプトの実行中に発生する expression の個々の評価値について、一意の整数値を返します。この関数は、複合キーのコンパクト メモリ表示を作成する場合などに使用します。

情報メモautonumberキーは、テーブルが読み込まれた順番で生成されるため、同じデータ ロードで生成された場合のみ結合できます。ソース データのソート処理から独立してデータ ロード間で恒久的に維持されるキーを使用する必要がある場合は、hash128 関数、hash160 関数、hash256 関数を使用する必要があります。

構文:  

autonumber(expression[ , AutoID])

引数:  

引数 説明
AutoID

autonumber 関数が 1 つのスクリプト内の複数のキーで使用されている場合に、複数のカウンタ インスタンスを作成するには、オプションのパラメータ AutoID を使用して各カウンタに名前を付けます。

複合キーの作成

この例では、メモリを保護するために、autonumber 関数を使用して複合キーを作成します。この例は、デモのために、簡略化したものになっていますが、この方法が効果的なのは、多数の行が含まれるテーブルで使用した場合です。

データの例
Region Year Month Sales
North 2014 May 245
North2014May347
North2014June127
South2014June645
South2013May367
South2013May221

インライン データを使用して、ソース データをロードします。次に、Region 項目、Year 項目、Month 項目から複合キーを作成する、先行する LOAD を追加します。

RegionSales: LOAD *, AutoNumber(Region&Year&Month) as RYMkey; LOAD * INLINE [ Region, Year, Month, Sales North, 2014, May, 245 North, 2014, May, 347 North, 2014, June, 127 South, 2014, June, 645 South, 2013, May, 367 South, 2013, May, 221 ];

 

この結果、テーブルは次のようになります。

結果テーブル
Region Year Month Sales RYMkey
North 2014 May 245 1
North2014May3471
North2014June1272
South2014June6453
South2013May3674
South2013May2214

この例では、別のテーブルにリンクする必要がある場合、たとえば、文字列 "North2014May" の代わりに RYMkey の 1 を参照できます。

同様の方法で、Costs のソース テーブルをロードします。Region 項目、Year 項目、Month 項目は、autonumber 関数を使用しテーブルをリンクしてすでに複合キーを作成しているため、合成キーの作成を避けるために先行する LOAD から除外されます。

RegionCosts: LOAD Costs, AutoNumber(Region&Year&Month) as RYMkey; LOAD * INLINE [ Region, Year, Month, Costs South, 2013, May, 167 North, 2014, May, 56 North, 2014, June, 199 South, 2014, June, 64 South, 2013, May, 172 South, 2013, May, 126 ];

 

テーブル ビジュアライゼーションをシートに追加し、Region 項目、Year 項目、Month 項目、および Sales と Costs の Sum メジャーを追加できるようになりました。テーブルは次のようになります。

結果テーブル
Region Year Month Sum([Sales]) Sum([Costs])
Totals - - 1952 784
North2014June127199
North2014May59256
South2014June64564
South2013May588465

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。