分组问题请教!!!

wangxiaoyes7816 2008-05-08 08:28:39
表明是maxuserstatus用户状态表
字段 username,status,changedate changeby,memo
我现在要剔除重复的用户但是前提条件changedate必须是里现在最近的一个时间,如果用group by必须将其他字段加入到分组函数中,

select m.username, max(m.changedate)
from maxuserstatus m group by m.username
现在只能按用户分组,如果加上其他字段统计出来的条数就不准了。
我的意思是如果
select m.username,max(m.changedate),status,changeby,memo from maxuserstatus m group by m.username,status,changeby,memo
上面这条语句查询出来的结果是1200多条,用第一条查询出来时789条,第一条是正确的我可以肯定。我现在就要显示表中所有字段按照第一条的分组来写。
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiaoyes7816 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hebo2005 的回复:]
[code=SQL]
select aa.*
from(

select a.*,
row_number() over (partition by a.username order by a.changedate desc) rn
from maxuserstatus
) aa
where aa.rn=1
[/Quote]



我按照你这个修改了下,成功了。小弟在此谢过前辈。
accpxs 2008-05-08
  • 打赏
  • 举报
回复
同意2楼的做法
hxmsammi 2008-05-08
  • 打赏
  • 举报
回复
很简单的啊
hebo2005 2008-05-08
  • 打赏
  • 举报
回复

select aa.*
from(

select a.*,
row_number() over (partition by a.username order by a.changedate desc) rn
from maxuserstatus
) aa
where aa.rn=1
hebo2005 2008-05-08
  • 打赏
  • 举报
回复
[code=SQL]
select aa.*
from(

select a.*,
row_number() over (partition by a.username order by a.changedate desc) rn
from maxuserstatus
) aa
where aa.rn=1

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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