gpt4 book ai didi

sql - 从 SQL Server 表中随机选择 n 行

转载 作者:行者123 更新时间:2023-12-01 16:19:46 29 4
gpt4 key购买 nike

我有一个 SQL Server 表,其中包含大约 50,000 行。我想随机选择其中大约 5,000 行。我想到了一种复杂的方法,创建一个带有“随机数”列的临时表,将我的表复制到其中,循环遍历临时表并使用 RAND() 更新每一行,然后从该表中选择随机数列 < 0.1 的位置。我正在寻找一种更简单的方法来做到这一点,如果可能的话,在一个语句中。

This article建议使用NEWID()函数。这看起来很有希望,但我不知道如何可靠地选择一定百分比的行。

以前有人这样做过吗?有什么想法吗?

最佳答案

select top 10 percent * from [yourtable] order by newid()

针对有关大表的“纯粹垃圾”评论:您可以这样做以提高性能。

select  * from [yourtable] where [yourPk] in 
(select top 10 percent [yourPk] from [yourtable] order by newid())

其成本将是值的键扫描加上连接成本,这在具有较小百分比选择的大型表上应该是合理的。

关于sql - 从 SQL Server 表中随机选择 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848872/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com