2

2 つの SQL データベースがあり、1 つはエージェントのリストで、もう 1 つはクライアントです。

所有しているエージェントの数の中で、クライアント データベースをランダムに分割したいと考えています。つまり、10 人のエージェントと 50,000 人のクライアントがいる場合、各エージェントは、利用可能なクライアントの数に基づいて同等の一意のリストを取得する必要があります。(重複なしで完全にランダムに選択された 5000 のクライアントの 10 のリスト)

私はまだSQLの初心者であり、エージェントの数に基づいてID番号をクライアントリストに割り当て、そのように結合しようとしました. 1、2、3 のように結合するだけでなく、もう少しランダムなことを試してみたいと思います。

SQLかエクセルでやりたいです。

助けてください...

4

2 に答える 2

2
SELECT *, ROW_NUMBER OVER (ORDER BY NEWID()) % 10 as AgentIndex
FROM Clients

は 0 から 9のAgentIndex範囲になります。各エージェントには 5000 のクライアントが関連付けられます。

于 2013-10-03T13:25:59.297 に答える
0

T-SQL を使用すると、NEWID() を使用して各行のランダム値を生成できます。次に、この値でレコードセットを並べ替え、SELECT TOP を使用して最初の 5000 要素を取得できます。

SELECT *, NEWID() AS RandomNumber INTO #MyTempTable FROM MyTable

SELECT TOP 5000 * FROM #MyTempTable ORDER BY RandomNumber
于 2013-10-03T12:47:28.057 に答える