例: fraction_descriptionの使用
- 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;