我有2个SQL数据库,1个是代理列表,另一个是客户端。
我想在我拥有的代理商数量中随机拆分客户数据库。即 如果我有10个代理商和50 000个客户端,则每个代理商必须根据可用客户端数量获得相同的唯一列表。 (10个完全随机选择的5000个客户名单,没有任何重复)
我仍然是SQL的新手,并且已经尝试根据我拥有的代理数量将ID号分配给客户端列表,然后像这样加入它们。我想尝试一些比随机1,2,3更随意的东西,并加入它们就像
我想在SQL或Excel中执行此操作。
请帮助......
答案 0 :(得分:2)
SELECT *, ROW_NUMBER OVER (ORDER BY NEWID()) % 10 as AgentIndex
FROM Clients
AgentIndex
将在0到9的范围内。每个代理将有5000个客户端与之关联。
答案 1 :(得分:0)
使用T-SQL,您可以使用NEWID()为每一行生成随机值。然后,您可以通过此值对记录集进行排序,并使用SELECT TOP获取前5000个元素,依此类推。
SELECT *, NEWID() AS RandomNumber INTO #MyTempTable FROM MyTable
SELECT TOP 5000 * FROM #MyTempTable ORDER BY RandomNumber