数据表抽检
一个表有上万条记录,有一个字段为年份,值有2014,2013,2012.我想从这个字段中每一年都按10%随机抽取记录生成一个新的表,该如何写程序?谢谢!
2014-10-08 15:28
2014-10-08 15:46
2014-10-08 15:53
程序代码:CLEAR ALL
CLOSE ALL
* 建立空结果表 curResult
SELECT 0 AS id,* FROM 表 WHERE .f. INTO CURSOR curResult READWRITE
* 添加随机数列形成新表 t1
SELECT RAND() as id,* FROM 表 INTO CURSOR t1
* 统计各年份的记录数形成新表 t2
SELECT 年份,CNT(*) as 记录数 FROM 表 GROUP BY 年份 INTO CURSOR t2
* 按各年份记录数的10%,筛选记录到结果表 curResult
SELECT t2
SCAN
INSERT INTO curResult ;
SELECT TOP IIF(t2.记录数*0.1<1,1,t2.记录数*0.1) * ;
FROM t1 ;
WHERE 年份 = t2.年份 ;
ORDER BY 年份,id
ENDSCAN
* 显示查询结果
SELECT curResult
ALTER TABLE curResult drop COLUMN id
GO TOP
BROWSE
2014-10-08 17:00
2014-10-08 22:24
2014-10-09 10:28
2014-10-09 13:05
2014-10-10 13:53
2014-10-11 12:42
2014-10-13 11:21