尝试制作较小的样本数据库,但数据仍具有统计学意义。如何从表中删除x%的行?一直在使用NEWID()函数。
答案 0 :(得分:5)
DELETE
FROM TABLE_NAME
WHERE PK IN (SELECT TOP (75) PRECENT PK
FROM TABLE_NAME
ORDER BY NEWID())
Martin Smith的建议
DELETE T
FROM (SELECT TOP (75) PERCENT *
FROM TABLE_NAME
ORDER BY NEWID()) T
答案 1 :(得分:2)
另一种方式是:
DELETE
FROM table_name
WHERE ABS(CHECKSUM(NEWID())) % 100 < 75 ;
不将完全删除75%的行,但对于更大的表格会更快,因为它不需要进行排序。