sql - 针对列样本中的每个唯一值2来自另一列的不同值
问题描述:
我困在一个困难的sql聚合问题上。sql - 针对列样本中的每个唯一值2来自另一列的不同值
考虑下面的表/视图:
Column1 Column2
1 2564
2 6550
1 3578
2 6548
2 4789
1 9876
我想设计一个查询,以做到以下几点:
对于每一个不同的列1值,样品2分的记录。采样策略可能是某种引导/重新采样,因为可能没有太多的数据点。
因此该表将成为:
Column1 Column2
1 9876
1 3578
2 6548
2 6550
平台:MS SQL
任何答案赞赏。
答
对于没有替换的随机样本:
select t.*
from (select t.*,
row_number() over (partition by column1 order by newid()) as seqnum
from t
) t
where seqnum <= 2;
,或者可选地:
select top (2) with ties t.*
from t
order by row_number() over (partition by id order by newid());
对于具有替换的随机样品:
随着置换:
select *
from ((select top (1) with ties t.*
from t
order by row_number() over (partition by id order by newid())
)
union all
(select top (1) with ties t.*
from t
order by row_number() over (partition by id order by newid())
)
) x;
我想要挑选15个uniq ue行,并简单地使用替换选项扩展代码。它像一个魅力。谢谢! – treeof