一个困惑我多日的sql语句不知怎么写,大家帮帮忙啊!内详

ipman 2001-12-07 08:04:57
一个表,有3个字段(姓名、访问时间、等级)
共有1万多条记录,姓名会有重复
如何用一条sql实现:
列出所有等级为2的最新纪录(即时间为最后的)
我用:
select 姓名,等级 from 表 where 等级=2 order by 访问时间

没有达到预期目的,找出很多多余的记录
...全文
104 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pxq 2001-12-08
  • 打赏
  • 举报
回复
segl(活鱼)  的应该可以吧

panther_totem 2001-12-08
  • 打赏
  • 举报
回复
如果你只是想找到最后一个访问的等级为2的人的记录则:
select 姓名,等级 from 表 where 等级=2 and rownum = 1 order by 访问时间 desc;
如果是每个人的最后访问记录,应该是segl(活鱼)那样的结果.
昵称被占用了 2001-12-08
  • 打赏
  • 举报
回复
select 姓名,max(访问时间),ip
from 表
where 等级=2
group by 姓名,Ip
ipman 2001-12-08
  • 打赏
  • 举报
回复
如果我还想同时得到访问者的IP呢?我用活鱼的写法出错了:(

select 姓名,max(访问时间),ip
from 表
where 等级=2
group by 姓名
sp_2000 2001-12-07
  • 打赏
  • 举报
回复
比较一下,还是xzou(亡狼补齿)的语句还能实现,别的语句好像都有错误
renlinan 2001-12-07
  • 打赏
  • 举报
回复
你要是用order by 的话,只不过是对你要选择的那些字段按照order by 后面的字段排序!自然是有很多多余的纪录了!
试试这个:
select 姓名,等级,max(访问时间) as 访问时间
from tablename
where 等级=2
group by 姓名
流星尔 2001-12-07
  • 打赏
  • 举报
回复
select top 1 * from tablename where 等级=2 group by name order by time desc
segl 2001-12-07
  • 打赏
  • 举报
回复
是列出每个人的最后访问时间吗?
select 姓名,max(访问时间)
from 表
where 等级=2
group by 姓名
xzou 2001-12-07
  • 打赏
  • 举报
回复
select 姓名,等级,访问时间 from where 等级=2 and
访问时间 = (select max(访问时间) from 表 where 等级=2);
是这个意思吗?题意不是很明确
相关推荐
发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2001-12-07 08:04
社区公告
暂无公告