SAMPLINGヒント
SAMPLINGヒントは指定した割合に従ってデータを抽出します。抽出割合は実数値のSamplingRateで指定し、
1は全データの100%を意味します。
構文
SELECT /*+ SAMPLING(SamplingRate) */ col1, col2, ...
FROM table_name
WHERE ...;| パラメーター | 説明 |
|---|---|
SamplingRate | データの抽出割合を表す実数値 |
抽出割合をパーセントで表すには、SamplingRateに100を掛けます。
| SamplingRate | 抽出割合 |
|---|---|
1 | 100% (全データ) |
0.01 | 1% |
0.0001 | 0.01% |
0.00001 | 0.001% |
例
-- 条件に一致する行を最大100,000行に制限した範囲から1%を抽出
SELECT /*+ SAMPLING(0.01) */ t_name, time, value
FROM tag
WHERE t_name = 'TAG_99'
LIMIT 100000;注意事項
SamplingRateは時間間隔や返却行数ではなく、抽出割合です。- 返却行数は実行ごとに変わる場合があり、指定割合に対応する正確な行数は保証しません。
- データが少ない場合や抽出割合が低い場合、結果が0行になることがあります。
- 上記の例のように
LIMITを併用すると、LIMITで制限した行の範囲からサンプリングします。例えばSAMPLING(0.5)とLIMIT 1000では、一致するデータが十分にある場合、最大1,000行の範囲から約50%を抽出します。サンプリング結果を1,000行まで埋めて返す意味ではありません。
関連ドキュメント
- SELECT hint syntax — 全ヒント一覧
- ROLLUP syntax — 正確な時間単位の集計
最終更新日