如何取每个品种当天的不同品种的2条数据

lang11zi 2006-02-27 06:33:24
table

id wzdm dwmc rq sj
1 A1101 a 2006-2-27 19:00:00
2 A1101 a 2006-2-27 19:00:00
3 A1102 a 2006-2-27 19:00:00
4 A1102 a 2006-2-27 19:00:00
5 A1103 a 2006-2-27 19:00:00
6 A1103 a 2006-2-27 19:00:00
7 A1101 b 2006-2-27 19:00:00
8 A1101 b 2006-2-27 19:00:00
9 A1102 b 2006-2-27 19:00:00

结果
id wzdm dwmc rq sj
1 A1101 a 2006-2-27 19:00:00
3 A1102 a 2006-2-27 19:00:00
7 A1101 b 2006-2-27 19:00:00
8 A1102 b 2006-2-27 19:00:00

就是每个dwmc选出不重复的两条wzdm
...全文
140 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lk919 2006-02-27
  • 打赏
  • 举报
回复
是随机的吗
lsqkeke 2006-02-27
  • 打赏
  • 举报
回复
由于是当天,也可这样写:
select * from
(select id=min(id),wzdm,dwmc,rq,sj from @t group by wzdm,dwmc,rq,sj)t
where id in(select top 2 id from (select id=min(id),wzdm,dwmc from @t group by wzdm,dwmc)g where g.dwmc=t.dwmc )
lsqkeke 2006-02-27
  • 打赏
  • 举报
回复
declare @t table(id int,wzdm varchar(10) , dwmc varchar(5),rq varchar(20),sj varchar(20))
insert @t
select 1,'A1101', 'a', '2006-2-27', '19:00:00' union all
select 2,'A1101', 'a', '2006-2-27', '19:00:00' union all
select 3,'A1102', 'a', '2006-2-27', '19:00:00' union all
select 4,'A1102', 'a', '2006-2-27', '19:00:00' union all
select 5,'A1103', 'a', '2006-2-27', '19:00:00' union all
select 6,'A1103', 'a', '2006-2-27', '19:00:00' union all
select 7,'A1101', 'b', '2006-2-27', '19:00:00' union all
select 8,'A1101', 'b', '2006-2-27', '19:00:00' union all
select 9,'A1102', 'b', '2006-2-27', '19:00:00'

select * from
(select id=min(id),wzdm,dwmc,rq=min(rq),sj=min(sj) from @t group by wzdm,dwmc)t
where id in(select top 2 id from (select id=min(id),wzdm,dwmc from @t group by wzdm,dwmc)g
where g.dwmc=t.dwmc )


结果:
id wzdm dwmc rq sj
1 A1101 a 2006-2-27 19:00:00
3 A1102 a 2006-2-27 19:00:00
7 A1101 b 2006-2-27 19:00:00
9 A1102 b 2006-2-27 19:00:00

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧