假设对testid有更新则插入一条新记录,那么怎么查询出testid最后的状态(分组查询)
2017-09-30 10:19
288 查看
假设对testid有更新则插入一条新记录,那么怎么查询出testid最后的状态
下面的表里的数据,只插入了一部分做模拟
可以看到testId为1的数据有3条,而我们则需要拿出其中最后更新的那条,那么该怎么拿呢?
首先将表通过testid分组,查询出最后的时间
可以看到查询出来的数据多了一个字段叫lasttime,接下来就用该字段对数据进行筛选。
将查询出来的字段作为一张表,与原表关联查询
这样便能查询出每个testid的最后状态了
ps:最好用主键ID筛选,因为主键是一定不重复的,而更新时间则可能在一毫秒插入多条数据;
下面的表里的数据,只插入了一部分做模拟
可以看到testId为1的数据有3条,而我们则需要拿出其中最后更新的那条,那么该怎么拿呢?
首先将表通过testid分组,查询出最后的时间
SELECT *,MAX(time) lasttime FROM a GROUP BY testid ;
可以看到查询出来的数据多了一个字段叫lasttime,接下来就用该字段对数据进行筛选。
将查询出来的字段作为一张表,与原表关联查询
SELECT * FROM a , (SELECT *,MAX(time) lasttime FROM a GROUP BY testid) c WHERE a.testid=c.testid and a.time=c.lasttime;
这样便能查询出每个testid的最后状态了
ps:最好用主键ID筛选,因为主键是一定不重复的,而更新时间则可能在一毫秒插入多条数据;
相关文章推荐
- 取最后一条记录的值(插入、查询 数据时自动排序)
- mysql查询最后几条、生成一条包含多条记录、插入语句、差值查询
- mysql插入一条记录时有自增id怎么办
- mysql 更新多条id键值相同记录中的最新(最后一条)记录
- sql 插入一条记录并查询出记录的id值
- 一条SQL查询访问记录表(visit_log)中某个类目(catalog_id)的访问量(visit)排前两名的记录行
- sql server 2000中取得最后插入记录的自动编号ID
- 安装Sequoiadb后,插入,查询,更新,删除记录
- SQL Server 返回最后插入记录的自动编号ID
- sql中插入一条记录并获取该条记录的自动增长ID
- SQL Server 返回最后插入记录的自动编号ID
- 查询插入满足条件新记录,如果已经有记录则循环更新相关记录
- jdbc插入一条记录后,马上获取到当前记录的id,以方便对插入的当前记录进行更多的操作
- Mysql update语句赋值嵌套select,更新和查询同一张表,必须取别名;用例:更新指定游戏服务器最后启动记录的结束时间
- 查询分组数据指行条件满足的行的上一条记录的技巧
- 插入一条记录并获取自增的id
- 在JAVA中查询刚插入的记录ID 利用JDBC的getGeneratedKeys获得INSERT插入后生成的主键ID
- 如何插入一条记录获取插入后的自动增长ID列的方法.
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- 插入一条空记录并返回空记录的ID