16.20 - 例: Sample句 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-162K-JPN
Language
日本語 (日本)

例: fraction_descriptionの使用

ニューラル ネット分析用に、相互排他的な顧客テーブルの標本セットを3つ生成すると想定します。望ましいパーセントは次のとおりです。
  • Train(調整)、60%
  • Test(テスト)、25%
  • Validate(検証)、15%

合計は100%を超えないように注意します。

希望する結果を生成するSELECT文は、次のようになります。

     SELECT customer_id, age, income, marital_status, SAMPLEID
     FROM customer_table
     SAMPLE 0.6, 0.25, 0.15;

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

customer_id
-----------
age
---
income
------
marital_status
--------------
SAMPLEID
--------
1362549
17
      0
1
1
1362650
21
 17,804
2
1
1362605
34
 16,957
2
1
1362672
50
 16,319
2
3
1362486
76
 10,701
3
1
1362500
40
 56,708
1
3
1362489
35
 55,888
3
2
1362498
60
  9,849
2
1
1362551
27
 23,085
1
1
1362503
18
  5,787
1
2

標本1はトレーニング グループ、標本2はテスト グループ、および標本3は検証グループです。

例: count_descriptionの使用

顧客が最低100都市に存在しているかどうかを確認します。

     SELECT COUNT (DISTINCT city)
     FROM (SELECT city
           FROM customer_table
           SAMPLE 1000) TEMP;

customer_tableが大きい場合、SAMPLE 1000句はテーブルの全画面スキャンを要求せず、DISTINCTにソートを実行し、1,000行の操作のみを行ないます。

1,000行標本は、固有数値が100以上の場合、95パーセント以上正確に見積ります。

SAMPLE句の入っていない類似の問合わせを行なう場合、DISTINCTを実行する前にまず大きなcustomer_tableをソートする必要があります。たとえば、次のようになります。

     SELECT COUNT (DISTINCT city)
     FROM customer_table;

層化サンプリングの使用例

以下のテーブルに、この後の例で使用されるデータを記載します。

     SELECT *
     FROM stores;
       storeid   city             state
   -----------   ---------------   -----
             2   Green Bay         WI
             7   San Diego         CA
             5   San Jose          CA
             8   Los Angeles       CA
             3   Madison           WI
             1   Racine            WI
             6   San Francisco     CA
             4   Milwaukee         WI

例: 置き換えのない層化サンプリングおよび比例割り当て

以下の問合わせは、デフォルトの比例割当てを使用して、置換えなしで、WIの行の25パーセントおよびCAの行の50パーセントをサンプリングします。

     SELECT city, state, SAMPLEID
     FROM stores
     SAMPLE WHEN state = 'WI' THEN 0.25
            WHEN state = 'CA' THEN 0.5
            END
     ORDER BY 3;
   city             state    SAMPLEID
   ---------------  ----- -----------
   Milwaukee        WI              1
   San Diego        CA              2
   San Jose         CA              2

例: 置き換えのある層化サンプリングおよび比例割り当て

以下の問合わせは、デフォルトの比例割り当てを使用して、置き換えを行ない、WIで3行および1行、相互排他的でない2つのサンプルを抽出し、CAごとに2行,相互排他的でない2つのサンプルを抽出します。

     SELECT city, state, SAMPLEID
     FROM stores
     SAMPLE WITH REPLACEMENT
         WHEN state = 'WI' THEN 3, 1
         WHEN state = 'CA' THEN 2, 2
         END
     ORDER BY 3;
   city             state    SAMPLEID
   ---------------  ----- -----------
   Green Bay        WI              1
   Madison          WI              1
   Madison          WI              1
   Racine           WI              2
   San Diego        CA              3
   San Jose         CA              3
   San Diego        CA              4
   San Jose         CA              4

例: 置き換えがなく、ランダム割り当てのある層化サンプリング

以下の問合わせは、ランダム形式の割当てを使用して、置換えなしで、WIの行の25パーセントおよび50パーセントの相互排他的な2つの標本を抽出し、CAごとに25パーセントの相互排他的な2つの標本を抽出します。

     SELECT city, state, SAMPLEID
     FROM stores
     SAMPLE RANDOMIZED ALLOCATION
            WHEN state = 'WI' THEN 0.25, 0.5
            WHEN state = 'CA' THEN 0.25, 0.25
            END
     ORDER BY 3;
   city             state    SAMPLEID
   ---------------  ----- -----------
   Green Bay        WI              1
   Milwaukee        WI              2
   Madison          WI              2
   San Diego        CA              3
   San Francisco    CA              4

例: 置き換えとランダム割り当てのある層化サンプリング

以下の問合わせは、ランダム形式の割当てを使用して、置換えを行ない、WIの3行およびWI以外の2行をサンプリングします。

     SELECT city, state, SAMPLEID
     FROM stores
     SAMPLE WITH REPLACEMENT RANDOMIZED ALLOCATION
        WHEN state = 'WI' THEN 3
        ELSE 2
        END
     ORDER BY 3;
   city             state    SAMPLEID
   ---------------  ----- -----------
   Racine           WI              1
   Racine           WI              1
   Madison          WI              1
   San Diego        CA              2
   San Diego        CA              2

例: 置き換えとランダム割り当てのある層化サンプリング

以下の問合わせは、ランダム形式の割当てを使用して、置換えを行ない、3行をサンプリングします。

     SELECT city, state
     FROM stores
     SAMPLE WITH REPLACEMENT RANDOMIZED ALLOCATION 3;
   city             state
   ---------------  -----
   San Diego        CA
   Madison          WI
   San Jose         CA

例: SAMPLEおよびPERIOD値式

次の例では、PERIOD値式にSAMPLE句を指定する方法を示しています。period_of_stayは、PERIOD値式です。

     SELECT emp_no, period_of_stay, SAMPLEID
     FROM employee
     SAMPLE 0.5,0.5;