我的sql select语句的输出是A列中的Customer ID列表。 在B列中,我想要随机分配每个客户ID,即桶A或B,以执行A / B测试。 如何使用rand在我的select语句中的新列中生成a或b
答案 0 :(得分:1)
你可以使用像这样的解决方案: Generating Random Number In Each Row In Oracle Query解决了使用dbms_random.value的问题。
如果你想获得一个0或1的值,那么你可以这样做,假设你的客户来自一个名为customers的表:
# views/invoices/show.html.erb
<%= back_link(params) %>
随机值介于0和1之间(包括0且不包括1),因此添加0.5并使用楼层意味着您将获得半个0和1个半。
有关在Oracle 11g中使用dbms_random的说明,请参见其手册:https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_random.htm
您可能需要初始化种子以保证或改善随机性。
如果0和1不合适,则可以将FLOOR包装在CASE或DECODE中,将数字0和1转换为字母A和B.