我需要根據另一行中的權重從表中選擇隨機行。就像用戶輸入隨機值50一樣,我需要從表中選擇50個隨機行,即權重更高的行會返回更多次數。只見使用NEWID()來選擇隨機行中的n個與此鏈接根據另一行上的權重選擇隨機行
Random Weighted Choice in T-SQL
,我們可以根據來自另一行的權重選擇一個行,但我需要選擇多行基於用戶的隨機輸入數字,所以最好的方法是在上面的鏈接中使用建議的答案並循環使用n次(但我認爲它會返回同一行)是否還有其他簡單的解決方案。
我的表是這樣的
ID Name Freq
1 aaa 50
2 bbb 30
3 ccc 10
所以當用戶輸入50我需要返回50個隨機名的,所以應該像更AAA,BBB比ccc.Might像25 AAA BBB 15和10 CCC。任何接近此的工作將會奏效。我看到了這個答案,但是當我對我的數據庫執行時,它似乎在運行5分鐘並且沒有結果。 SQL : select one row randomly, but taking into account a weight
以下內容是什麼意思? '...因爲體重較高的行會被返回更多次數。' –
@AbeMiessler在問題中添加了更多解釋,謝謝 – Lav
我編輯了您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –