我需要一些帮助,找出如何从Oracle表中超过10000条记录的表中选择总共30条随机记录。我已经在其他地方寻找,但其他解决方案似乎都在从每个类别中选择相同数量的随机记录。如果有帮助,我正在使用Oracle SQL Developer。
我的查询需要从4个区域中的每个区域中选择3个随机记录,但也要从其他2个区域中选择总共18条记录。随机记录的总数应为30,并且在每次运行查询时都不应包含重复记录。
我们有6个销售区域(红色,蓝色,绿色,黑色,橙色,紫色),我们想要随机奖励来自红色,蓝色,绿色和黑色地区的3个推销员;而且还从橙色和紫色的其他两个地区随机奖励了18名推销员。
这是我到目前为止所拥有的。我对SQL不是那么先进,所以我请你好心。
我未能弄清楚如何从橙色和紫色区域的组合中选择18个。
select * from
( select salesman_id,sales_region,supervisor, row_number()
over (partition by sales_region order by dbms_random.value) as num_row
from sales_table
group by salesman_id,sales_region,supervisor )
where num_row <=3;
答案 0 :(得分:2)
你基本上有正确的想法。您只需要将橙色和紫色区域视为一个区域,并为不同区域设置不同的条件:
{{1}}