首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中有效地選擇隨機百分比的行?

如何在 SQL Server 中有效地選擇隨機百分比的行?

Mary-Kate Olsen
發布: 2025-01-19 08:17:09
原創
301 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板