根据条件选择DISTINCT项目行和关联列

时间:2010-07-29 07:13:27

标签: sql sql-server-2008

假设我的数据库中有一个这样的表

   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 个答案:

答案 0 :(得分: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