用于查询表

时间:2016-10-06 05:55:58

标签: sql greatest-n-per-group

我的sql表包含以下列

CrewID
Lat
Lon
DateCreated

现在,这张表存储了每位乘务员出行时的纬度和经度,以及记录位置时的日期时间。

我需要根据DateCreated编写一个查询,该查询将根据此表向我提供每个工作人员的最后记录位置。

3 个答案:

答案 0 :(得分:1)

Select top 1 * from table_name order by DateCreated desc 

desc 将返回最新日期, asc 将返回表格中存在的最早日期,上述查询将适用于SQL_Server,您可以使用限制以相同的方式为mysql设置关键字。

<强>解释

  1. 根据日期订购记录
  2. 从排列的数据(最后记录的数据行)中选择前1个
  3. 您可以编写列名而不是*来过滤数据
  4. 学习资源This

答案 1 :(得分:0)

SELECT tn.*
FROM table_name tn
LEFT OUTER JOIN table_name tnb
    ON tn.CrewID = tnb.CrewID AND tn.DateCreated< tnb.DateCreated
WHERE tnb.CrewID IS NULL;

答案 2 :(得分:0)

查看此

SELECT CrewID,max(Lat),Max(Lon),Max(DateCreated)
 Group By CrewID

请回复