大量数据查询求解决方案! 本帖最后由 ldlovemm 于 2012-03-02 10:19:27 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select max(addtime),distinct(deviceid)from tab_tmpgroup by deviceid; 感谢楼上的回答,不过没有达到我要的效果,可能我没有把问题描述清楚。我想要的是: 表(暂且叫 tab_tmp)有80万条记录,其中有两个字段是 'deviceid'(设备ID)以及 'addtime'(记录添加时间),现在想在这张表里面查询所有不重复 'deviceid' 的记录,且这条记录(包括其他字段)的 ‘addtime’ 是最大的。 select a.* from tab_tmp as a inner join ( select deviceid, count(*) as num from tab_tmp group by deviceid having num=1 ) bon a.deviceid=b.deviceid; select * from tab_tmp as awhere not exists(select * from tab_tmp where a.devceid=devceid and addtime>a.addtime) 应不应该增加新表储存新字段? 请教这句oracle如何修改成mysql的 如何删除一个表的所有记录,但是保留表的结构? 为什么我的日志文件默认位置和文档上说的不一样? 如何合并两个数据库里面的数据? 在PostgreSQL中,查询30分钟前的数据的SQL怎样写?时间字段为Time 怎么样把mysql的数据库转换为access数据库??? mysql Err1064求解 如何获取数据库中刚插入和刚更新后的行 数据库初学者的基础问题 一个同步的疑难问题 mysql大量记录的查询问题
from tab_tmp
group by deviceid;
表(暂且叫 tab_tmp)有80万条记录,其中有两个字段是 'deviceid'(设备ID)以及 'addtime'(记录添加时间),现在想在这张表里面查询所有不重复 'deviceid' 的记录,且这条记录(包括其他字段)的 ‘addtime’ 是最大的。
(
select deviceid, count(*) as num
from tab_tmp
group by deviceid having num=1
) b
on a.deviceid=b.deviceid;
where not exists(select * from tab_tmp
where a.devceid=devceid and addtime>a.addtime)