TSQL随机样本

时间:2018-05-23 15:14:48

标签: sql-server tsql random

我需要根据表中2个不同变量的比率从表中选择使用TSQL的随机样本。

所需的随机样本大约是来自一张表约有381,000条记录的8000条记录。随机样本必须具有2个变量的近似比率:

4:1(男/女) - 2类变量 4:3:2:1(重/中/轻/极轻) - 4类变量

1 个答案:

答案 0 :(得分:2)

将其分解为每个

的数量
select top (640) * 
from table 
where sex = 'f' 
  and cat = 'heavy' 
order by NewID() 
union all
select top (480) * 
from table 
where sex = 'f' 
  and cat = 'medium' 
order by NewID()  
...

4 + 1 = 5
4 + 3 + 2 + 1 = 10
640 = 8000/5 * 4/10