2010-07-29 38 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