根据字段唯一查询
表 RunningStatus
PuID GpsTime Longitude Speed Rese
1 1 3 1 0
1 2 4 2 0
2 3 5 3 0
2 4 6 4 0
2 4 7 5 0
3 5 7 6 0
要求:查询 PuID唯一 GpsTime最大的所有信息
如下:
1 2 4 2 0
2 4 6 4 0
3 5 7 6 0
语句:select a.* from (SELECT PuID,max(GpsTime) as GpsTime FROM RunningStatus group by PuID) b LEFT OUTER JOIN RunningStatus a on a.PuID = b.PuID and a.GpsTime = b.GpsTime
得到的是:
1 2 4 2 0
2 4 6 4 0
2 4 7 5 0
3 5 7 6 0
语句:再嵌套一层group by :
select a.* from (SELECT PuID,max(GpsTime) as GpsTime FROM RunningStatus group by PuID) b LEFT OUTER JOIN RunningStatus a on a.PuID = b.PuID and a.GpsTime = b.GpsTime and a.Longitude in (select max(Longitude) as Longitude from (select a.* from (SELECT PuID,max(GpsTime) as GpsTime FROM RunningStatus group by PuID) b LEFT OUTER JOIN RunningStatus a on a.PuID = b.PuID and a.GpsTime = b.GpsTime) c group by c.PuID) order by PuID
得到了想要的数据。
但是如果Longitude字段又不唯一的话就又要再嵌套一层group by 。。。。。
所以能不能有种简单的方法??
PuID GpsTime Longitude Speed Rese
1 1 3 1 0
1 2 4 2 0
2 3 5 3 0
2 4 6 4 0
2 4 7 5 0
3 5 7 6 0
要求:查询 PuID唯一 GpsTime最大的所有信息
如下:
1 2 4 2 0
2 4 6 4 0
3 5 7 6 0
语句:select a.* from (SELECT PuID,max(GpsTime) as GpsTime FROM RunningStatus group by PuID) b LEFT OUTER JOIN RunningStatus a on a.PuID = b.PuID and a.GpsTime = b.GpsTime
得到的是:
1 2 4 2 0
2 4 6 4 0
2 4 7 5 0
3 5 7 6 0
语句:再嵌套一层group by :
select a.* from (SELECT PuID,max(GpsTime) as GpsTime FROM RunningStatus group by PuID) b LEFT OUTER JOIN RunningStatus a on a.PuID = b.PuID and a.GpsTime = b.GpsTime and a.Longitude in (select max(Longitude) as Longitude from (select a.* from (SELECT PuID,max(GpsTime) as GpsTime FROM RunningStatus group by PuID) b LEFT OUTER JOIN RunningStatus a on a.PuID = b.PuID and a.GpsTime = b.GpsTime) c group by c.PuID) order by PuID
得到了想要的数据。
但是如果Longitude字段又不唯一的话就又要再嵌套一层group by 。。。。。
所以能不能有种简单的方法??
...全文
相关推荐
MySQL 查询某个字段不重复的所有记录
现在想从这5条记录中查询所有title不重复的记录
如何根据表里的一个字段,查出它属于哪张表
如何根据表里的一个字段,查出它属于哪张表
sql_按照某一个字段进行去重后获取全部字段
sql语句:按照某一个字段进行去重后获取全部字段。
row_number,根据多个字段过滤,partition by
过滤方法有distinct 获取是整行 重复 但只想过滤2个或2个以上不是所有字段 怎么办? 根据多个字段过滤 比如表:teacher表 id ,name ,sex,idNumber,phone,date; 需求 根据name和idnumber和date过滤重复数据只取一条;
Laravel Validator 实现两个或多个字段联合索引唯一
主要介绍了Laravel Validator 两个或多个字段联合索引唯一,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下


