根据查询子集的最早日期过滤查询结果

Filter query result based on earliest date for subset of query

我构建了一个查询,它将 return 一个 table 这样的:

| NAME   | DATE   |
| Item 1 | Date 1 |
| Item 1 | Date 2 |
| Item 1 | Date 3 |
| Item 2 | Date 1 |
| Item 2 | Date 2 |
| Item 3 | Date 1 |
| Item 3 | Date 2 |
| Item 3 | Date 3 |
| Item 3 | Date 4 |

基本上是一对多的分组。我想从这个结果集中过滤掉每个项目的最早日期的行。意思是,对于每个项目,删除具有最高日期的行(为每个 'Item' 删除 'Date 1')。我如何 return 这个查询删除了 "Date 1" 行?

Ex 输出:

| NAME   | DATE   |
| Item 1 | Date 2 |
| Item 1 | Date 3 |
| Item 2 | Date 2 |
| Item 3 | Date 1 |
| Item 3 | Date 3 |
| Item 3 | Date 4 |
;WITH CTE AS
(
   SELECT *,
          RN = ROW_NUMBER() OVER(PARTITION BY Name ORDER BY [Date])
   FROM (...Your query here...) T
)
SELECT *
FROM CTE 
WHERE RN > 1;