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

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

Mary-Kate Olsen
发布: 2025-01-19 08:17:09
原创
333 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板