SQL server でランダムサンプリング(同じ結果を担保)

結構手こずったので

1、乱数を発生(今回は 0~99)

このブログの rnd5 をABS(CHECKSUM(RAND(id)) % 100)と、10から100に変更する。
qiita.com

2、乱数の値を WHERE で指定する

SELECT *
FROM table
WHERE ABS(CHECKSUM(RAND(id)) %100) < 20

こうすれば 20%分とってくることができます。
TABLESAMPLE は元々あるテーブルにしか適用できませんでした。
なので、特定の条件下の人についてのランダムサンプリングには使えません。なむなむ