2

我有 2 个 SQL 数据库,1 个是代理列表,另一个是客户端。

我想在我拥有的代理数量中随机拆分客户端数据库。即,如果我有 10 个代理和 50 000 个客户,则每个代理必须根据可用客户的数量获得一个相同的唯一列表。(10 个 5000 个完全随机选择的客户列表,没有任何重复)

我仍然是 SQL 的新手,并尝试根据我拥有的代理数量将 ID 号分配给客户列表,然后像这样加入它们。我想尝试一些更随机的东西,而不是仅仅去 1,2,3,然后像这样加入它们

我想用 SQL 或 Excel 来做。

请帮忙...

4

2 回答 2

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

AgentIndex在 0 到 9 的范围内。每个代理将有 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 回答