目的
行が帰属する標本を識別します。その際、SELECT文中のSAMPLE句に指定されている別の標本に属する行が分別されます。
構文
構文要素
- SAMPLEID
- 結果セット行を元のサンプルにリンクするためにサンプル識別子が使用されることを示す選択リストまたはORDER BY句式。
ANSI準拠
SAMPLEIDは、ANSI SQL:2011規格に対するTeradata拡張機能です。
Sample IDの定義
1からnまで(nはSAMPLE句で要求されている標本数)のSAMPLE句の指定を左から右への順序で、行が帰属する標本が標本IDによって識別されます。
SAMPLEIDのルールと制限
- SAMPLEIDは、SAMPLE句を使ってのみ指定することができ、選択リストの一部としてか、またはORDER BY句式内で使うことができます。
- SAMPLEIDは選択リストに指定された唯一の条件にすることはできません。SAMPLEIDを指定する場合、SAMPLEIDではない列式を少なくとも1つは指定しなければなりません。
層化サンプリングを指定したSAMPLEIDの使用
SAMPLEID値は、層化するかどうかにかかわらず、指定された標本がn個の場合、単純に1, 2, 3, ... nです。したがって、以下のSAMPLE句の場合、
SAMPLE WHEN state = 'CA' THEN |
0.3, |
0.2 |
ELSE |
0.5, |
0.2 |
|
対応するSAMPLEIDは以下のとおりです。 | 1 | 2 | 3 | 4 |
例: SAMPLEIDを選択リスト式として使用する3つのサンプル セット
以下のSELECT文は、顧客テーブルにある3つの互いに排他的な標本セット(60%は標本カテゴリx用、25%は標本カテゴリy用、15%は標本カテゴリz用)を示しています。
結果は、3つの列を含むテーブルに入れて返されます。cust_name、cust_addrおよびSAMPLEID。
SAMPLEID列内の整数は、0.6標本、0.25標本、0.15標本のどれに行が属するかを特定します。
これらの標本は、SAMPLE句での左から右への順序で1~3と識別されます。したがって0.6は1、0.25は2、そして0.15は3と識別されます。
SELECT cust_name, cust_addr, SAMPLEID FROM customer_table SAMPLE 0.6, 0.25, 0.15;
結果テーブルは、一部以下のようになります。
cust_name | cust_addr | SAMPLEID |
---|---|---|
Jones Pharmaceuticals | 4235 Lawler Road Memphis, TN USA |
1 |
Fong Furniture | 310 East Highway 5 Hong Kong |
2 |
Subramaniam Spice Exports | 455 1/2 Gandhi Lane Hyderabad India |
3 |
Forrester Property Management | 1 West Broadway Syracuse, New York USA |
1 |
Otomo Consulting | 33 Korakuen Hall Tokyo Japan |
1 |
Adler Music Publishing, Ltd。 | 5 East 245th Street Nashville, TN USA |
|
O’Brien Metals | 83 Heatherington The Whithers Cobblestone-on-Treads United Kingdom |
1 |
Irama Rice Importers | 8562 Rhoma Lane Jakarta Indonesia |
2 |
Abdelwahab Fine Egyptian Rugs | 1723 Kulthum Avenue Cairo Egypt |
1 |
Bachar Ouds | 18 Rashied Diagonal Baghdad Iraq |
1 |
例: PERIOD値式のあるSAMPLEIDの使用
次の例では、PERIOD値式をSAMPLEID式と共に指定する方法を示しています。period_of_stayは、PERIOD値式です。
SELECT emp_no, period_of_stay, SAMPLEID FROM employee SAMPLE 0.5,0.5;