毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

MSSQL分组后每组随机取出一条数据

更新时间:2013-4-27:  来源:毕业论文

MSSQL分组后每组随机取出一条数据

字段1 字段2
id  name
1   a
2   b
3   c
4   c
5   b
根据name分组,最后每组随机取出一条数据。

思路可以有

1、将内容分组,如:第一组name=a,b,c,d,第二组name=e,f,g,h
2、1—4的范围内获得一个随机数,赋值给checki
3、split(name,",")(checki)
4、如果内容分组后,第一组和第二组的数量不一致——"a,b,c,d"和"e,f,g",用下标对比处理一下checki

select id,name from(select *,row=row_number()over(partition by name order by newid()) from tb)t where row=1
create table t  (  id int,  name varchar(10)  )  insert into t  select 1,'a' unionselect 2,'b' unionselect 3,'c' unionselect 4,'c' unionselect 5,'b'     select t.name,(SELECT TOP 1 id FROM t a WHERE a.NAME=t.NAME ORDER BY CHECKSUM(NEWID()))id from t  group by t.name    drop table t

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。