首页 >数据库 >mysql教程 >如何在 SQL Server 中有效地选择随机百分比的行?

如何在 SQL Server 中有效地选择随机百分比的行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-19 08:17:09335浏览

How Can I Efficiently Select a Random Percentage of Rows in SQL Server?

SQL Server 中简化的随机行选择:一种简化的方法

SQL Server 用户经常需要从表中随机选择行样本。 寻找一种干净、有效的方法来解决这个问题历来都是有问题的。本文提出了一个简化的解决方案。

之前的尝试经常涉及复杂的临时表和迭代过程。虽然 NEWID() 函数具有潜力,但事实证明可靠地选择精确的百分比很困难。

这是一个简洁高效的解决方案:

<code class="language-sql">SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID()</code>

此查询使用 ORDER BY NEWID() 随机打乱行。 TOP 10 PERCENT 然后选择这些打乱的行中的前 10%。

对于非常大的表,建议采用性能优化的方法:

<code class="language-sql">SELECT * FROM [yourtable] WHERE [yourPk] IN (SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID())</code>

此方法首先使用子查询选择主键值的随机样本。然后,主查询仅检索与这些键对应的行。这显着减少了扫描的数据,从而提高了性能。

这些技术提供了一种在 SQL Server 中执行随机行选择的简单而有效的方法,解决了以前复杂的问题。

以上是如何在 SQL Server 中有效地选择随机百分比的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn