2010-07-29 57 views
2

比方說,我有一個這樣的表在我的DB選擇基於條件DISTINCT項行和相關的字段

Date ItemId Count 
7/29/2010 3 1 
7/30/2010 3 2 
7/31/2010 2 3 
7/29/2010 3 4 
7/30/2010 1 5 
7/31/2010 1 6 
7/29/2010 2 7 
7/30/2010 3 8 
7/31/2010 1 2 

對於每種項目類型,我想選擇在發現最近日期的數表只。

有沒有簡單的方法來做到這一點?

我正在考慮用DISTINCT做些什麼來獲得唯一的ItemID,但我從那裏被卡住了。

回答

1
SELECT ItemId, Count 
    FROM 
    (SELECT Date, ItemId, Count, RANK() OVER (partition by ItemId, Order by ItemId, Date Desc) r 
    FROM Table 
) 
    WHERE r = 1