別の行の重みに基づいて、テーブルからランダムな行を選択する必要があります。ユーザーがランダムな値 50 を入力した場合のように、テーブルから 50 個のランダムな行を選択する必要があります。これは、重みの高い行がより多くの回数返されるためです。NEWID() を使用して n 個のランダムな行を選択し、このリンクを見ました
別の行からの重みに基づいて1つの行を選択できますが、ユーザーのランダムな入力番号に基づいて複数の行を選択する必要があるため、上記のリンクで提案された回答を使用してn回ループするのが最善の方法です(しかし、同じ行が返されると思います)他に簡単な解決策はありますか?
私のテーブルはこんな感じ
ID Name Freq
1 aaa 50
2 bbb 30
3 ccc 10
したがって、ユーザーが 50 を入力すると、50 のランダムな名前を返す必要があるため、ccc よりも aaa ,bbb のようになるはずです.25 aaa 15 bbb と 10 ccc のようになるかもしれません. これに近いものはすべて機能します。この回答を見ましたが、DB に対して実行すると、5 分間実行され、まだ結果が得られないようです。 SQL : 1 行をランダムに選択しますが、重みを考慮します