求一条SQL语句 求唯一性

moduofanchen 2012-12-18 03:04:33

如上结果
我想得到user_id 不重复的一条记录

比如 14477 就取一条 哪一条没关系 但是group_id 也要出现
distinct 后就得不到group_id了

14477 P_201204231150031112
14478 P_201206151035405245
14479 P_201208072017098564

这种结果
...全文
138 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoqi7456 2012-12-19
  • 打赏
  • 举报
回复
引用 2 楼 TravyLee 的回复:
SQL code ? 123 select * from tb a where a.group_id=(select top 1 group_id from tb b where a.user_id=b.user_id order by group_id)
如果group_id内有重复的 则不能用这个办法
-Tracy-McGrady- 2012-12-18
  • 打赏
  • 举报
回复

create table tb(group_id varchar(20),user_iid int)
insert into tb(group_id,user_iid)
select 'sadfasfasdas',14477 union all
select 'sadfasfasdas',14477 union all
select 'sadfasfasdas',14477 union all
select 'sadfasfasdas',14478 union all
select 'sadfasfasdas',14478 union all
select 'sadfasfasdas',14478 union all
select 'sadfasfasdas',14478 union all
select 'sadfasfasdas',14479 union all
select 'sadfasfasdas',14479 union all
select 'sadfasfasdas',14479 union all
select 'sadfasfasdas',14477 union all
select 'sadfasfasdas',14477 

with cte as
(select group_id,user_iid,iid=row_number() over (order by getdate()) from tb)
select a.group_id,a.user_iid from cte a where not exists(
  select 1 from cte b where a.user_iid=b.user_iid and a.iid<b.iid
)

group_id             user_iid
-------------------- -----------
sadfasfasdas         14478
sadfasfasdas         14479
sadfasfasdas         14477
  • 打赏
  • 举报
回复
select group_id,user_id from (select *,row=row_number()over(partition by user_id order by getdate()) from 表)t where t.row=1
  • 打赏
  • 举报
回复
select group_id,user_id from (select *,row=row_number()over(partition by user_id order by getdate()))t where t.row=1
-Tracy-McGrady- 2012-12-18
  • 打赏
  • 举报
回复
with cte as (select group_id,user_id,iid=row_number() over (order by getdate()) from 你的表) select a.group_id,a.user_id from cte a where not exists( select 1 from cte b where a.user_id=b.user_id and a.iid<b.iid )
  • 打赏
  • 举报
回复

select * from tb a
where a.group_id=(select top 1 group_id from tb b where a.user_id=b.user_id order by group_id)
  • 打赏
  • 举报
回复
select * from tb a
where a.group_id=(select top 1 group_id from tb b where a.user_id=b.user_id)

34,838

社区成员

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

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