2013-05-30 78 views
0

我有一張表格,列出可供出售的物品以及每個物品的銷售日期,物品的上市日期和物品的日期被重新宣傳爲銷售。選擇一個日期,然後選擇該日期前的前一個日期

我想爲銷售日期,銷售日期之前首先列出的日期以及廣告最後發佈日期的每個項目只獲取一行。

所以,下面我顯示的數據要得到的只有最後一排

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 

回答

0

應是這樣的簡單:

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

感謝這兩個答覆。該查詢實際上更復雜一些,並且因爲沒有很好地解釋它而道歉。因爲一件商品可以在特定時期內出售並重新列出一次以上,我實際上是經過了一些邏輯後,允許我在銷售日期之前或之前檢索第一個上市和發佈日期。我添加了一個不同的示例數據集。希望澄清! – Riccina

+0

ITEM ID \t已售DATE \t上市日期\t發表日期 \t 24/07/2003 22/07/2003 \t 22/07/2003 \t 2007年5月4日31/03/2007 \t 31/03/2007 2007年5月4日\t 31/03/2007 \t 14/04/2007 2007年5月4日\t 31/03/2007 \t 21/04/2007 2007年5月4日\t 31/03/2007 \t 24/04/2007 2007年5月4日\t 31/03/2007 \t 2007年5月5日 2007年5月4日\t 31/03/2007 19/05/2007 \t 24/05/2012 \t 15/05/2012 \t 15/05/2012 \t 24/05/2012 15/05/2012 \t 17/05/2012 \t 24/05/2012 15/05/2012 \t 24/05/2012 – Riccina

0

假設銷售日期和上市日期會對於給定項目ID的所有行都是相同的,

SELECT ITEM_ID, SALE_DATE, LISTING_DATE, MAX(PUBLISHED_DATE) 
FROM YOUR_TABLE 
GROUP BY ITEM_ID, SALE_DATE, LISTING_DATE; 
相關問題