当前位置: 代码迷 >> Sql Server >> SQL 生产随机取舍
  详细解决方案

SQL 生产随机取舍

热度:82   发布时间:2016-04-24 09:56:36.0
SQL 生产随机选择
A表
mm                           rq                          
201001            2010-01-01
201001           2010-01-02
201001           2010-01-03
201001           2010-01-04
201001           2010-01-05
201001          2010-01-06
201001          2010-01-07
201002           2010-02-01
201002           2010-02-02
201002           2010-02-03 
201002           2010-02-04
201002           2010-02-05
201002          2010-02-06
201002          2010-02-07

select * from a -----------  group by mm
每个月随机选择两天
------解决思路----------------------
select * from (select *,row_number()over(order by newid()) as n  from a ) as t
where n<3


------解决思路----------------------
如果表中的mm字段是日期的年月组成的字符,那sql可以这样写。

select id from (
select *,row_number() over(partition by mm order by newid()) as rid from A
) B where rid<3
  相关解决方案