选择日期,然后选择该日期之前的上一个日期

时间:2013-05-30 05:11:36

标签: sql date-sorting

我有一张表格,列出了可供出售的物品,以及每件物品的销售日期,物品的销售日期以及物品重新广告的销售日期。

我希望每个项目只有一行,包括销售日期,商品在销售之前首次列出的日期以及广告最后发布的日期。

因此,对于下面显示的数据,我想只得到最后一行

Item ID Sale_Date   Listing_Date    Published_date
1466748 4/04/2012   5/12/2011 0:00  5/12/2011 0:00
1466748 4/04/2012   5/12/2011 0:00  24/12/2011 0:00
1466748 4/04/2012   5/12/2011 0:00  7/01/2012 0:00
1466748 4/04/2012   5/12/2011 0:00  4/02/2012 0:00
1466748 4/04/2012   5/12/2011 0:00  18/02/2012 0:00
1466748 4/04/2012   5/12/2011 0:00  3/03/2012 0:00
1466748 4/04/2012   5/12/2011 0:00  17/03/2012 0:00

2 个答案:

答案 0 :(得分:0)

应该像这样简单:

select item_id, min(sale_date), min(listing_date), max(published_date)
from listing_table group by item_id

答案 1 :(得分:0)

假设销售日期和列表日期对于给定项目ID的所有行都是相同的,

SELECT ITEM_ID, SALE_DATE, LISTING_DATE, MAX( PUBLISHED_DATE)
FROM YOUR_TABLE
GROUP BY ITEM_ID, SALE_DATE, LISTING_DATE;