SQL - 需要从表Group By中选择最近的条目吗?不同?

时间:2013-03-14 00:36:15

标签: sql group-by

我有一张包含航班价格详情的表格,请参阅下面的简化字段:

FlightInfoId
AirportFrom
AirportTo
Price
DateTimeAdded

AirportFrom和AirportTo有大约300种可能的组合,代表300种不同的航线,尽管数据库中有数百万条记录,因此每条航线都有很多条目。我想要做的是为300条路线中的每条路线提取最新条目。可以使用时间戳'DateTimeAdded'推断出最新的条目。我需要一个返回300行的查询显示:

AirportFrom, AirportTo, DateTimeAdded

DateTimeAdded是AirportFrom和AirportTo

指定的路线的最新行数

我希望他很清楚,并提前感谢!

1 个答案:

答案 0 :(得分:1)

这种方法或多或少与数据库无关。

 select AirportFrom, AirportTo, Price
 from yourtable join
 (select AirportFrom af, AirportTo at, max(DateTimeAdded) LastUpdate
 from yourtable
 group by AirportFrom, AirportTo) temp on AirportFrom = af
 and AirportTo = at
 and DateTimeAdded = LastUpdate