(编辑)环境:
plee@sos-build:/usr/local/include/boost$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric
plee@sos-build:/usr/local/include/boost$ uname -a
Linux sos-build 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7
我有一个表,大约有1000万行和4列,没有主键。第2 3 4栏(x2、x3和x4)中的数据按column1 X1中鉴定的50组分组。
为了从桌子上随机抽取5%的样本,我总是用
SELECT TOP 5 PERCENT *
FROM thistable
ORDER BY NEWID()
结果返回约500,000行。但是,如果以这种方式抽样,一些组在样本中得到一个不相等的表示(相对于它们的原始大小)。
这一次,为了得到一个更好的样本,我想从列X1中识别的50组中的每一组获得5%的样本。因此,最后,我可以在X1中的50个组中随机抽取5%的行(而不是整个表的5% )。
我如何处理这个问题?谢谢。