Sql 选择多个列中具有相同值的最新行

Sql 选择多个列中具有相同值的最新行,sql,Sql,在我正在进行的一个项目中,有一些测量值存储在数据库中。测量由世界坐标(posX、posY、posZ)、站点标识号(stationID)和测量时间(time)组成 有时,由于不同的原因在现场重新进行测量,然后有多个测量具有相同的坐标和桩号,但在不同的时间执行 有没有一种方法可以编写一个sql查询,这样我就可以得到所有有效的测量值,即在坐标和站点id相同的情况下,只得到最新的测量值 我不太擅长SQL,所以我甚至不知道用谷歌搜索什么,所以即使您只知道我应该使用什么类型的命令,也非常欣赏任何指针:) 编

在我正在进行的一个项目中,有一些测量值存储在数据库中。测量由世界坐标(posX、posY、posZ)、站点标识号(stationID)和测量时间(time)组成

有时,由于不同的原因在现场重新进行测量,然后有多个测量具有相同的坐标和桩号,但在不同的时间执行

有没有一种方法可以编写一个sql查询,这样我就可以得到所有有效的测量值,即在坐标和站点id相同的情况下,只得到最新的测量值

我不太擅长SQL,所以我甚至不知道用谷歌搜索什么,所以即使您只知道我应该使用什么类型的命令,也非常欣赏任何指针:)

编辑:

我的任务刚刚改变,显然站点id不重要,只有坐标和时间


另外,我正在使用实现SQL-92的DISQLite3。

是的,您可以在SQL中实现它

似乎您希望为每个车站和坐标组合获取最新条目-查看
分组依据
行编号()

根据您的SQL变量(如果您指定它会很有帮助),例如

 select *
 from
     (Select *, 
             row_number() over (Partition by coordinates, stationid order by measurementtime desc) rn
      from yourtable
     ) v
 where rn = 1
没有排名功能

 select yourtable.* 
 from yourtable
      inner join
      (
           select coordinate, MAX(time) maxtime from yourtable
           group by coordinate 
      ) v
on yourtable.coordinate = v.coordinate
and yourtable.time = v.maxtime

嗯,就像你说的,显然SQL变体是有帮助的。看起来所使用的数据库是基于SQL-92的,分区是不可能的。。。你在上面表达的逻辑是否可以在旧标准中实现?它起作用了!非常感谢,如果可以的话,我会给你一百个加分:)