剔除SQL数据库中重复的数据和它们中间夹着的数据,并且保留最后一条

删除SQL数据库中重复的数据和它们中间夹着的数据,并且保留最后一条?
标题可能有点说不清 是这样

ID  BiaoShi  ShenID  ShenHe XuHao
1     18            19             1             1
2     18            19             2             2
3     18            19             3             3
4     18            19             2             4

ShenHe 中有重复的数据,要删除重复的和这2条数据中夹着的数据,并且保留XuHao最大的数据
剔除SQL数据库中重复的数据和它们中间夹着的数据,并且保留最后一条
实在是头晕了
------解决思路----------------------
WITH t1(ID,BiaoShi,ShenID,ShenHe,XuHao)AS(
    SELECT 1,18,19,1,1 UNION ALL
    SELECT 2,18,19,2,2 UNION ALL
    SELECT 3,18,19,3,3 UNION ALL
    SELECT 4,18,19,2,4 UNION ALL
    SELECT 5,18,19,4,5 
)
SELECT *
  INTO #temp
  FROM t1

;WITH t2 AS (
    SELECT ShenHe,
           MIN(ID) min_id,
           MAX(ID) max_id,
           MAX(XuHao) max_xuhao
      FROM #temp
  GROUP BY ShenHe
    HAVING COUNT(*) > 1
)
--SELECT * FROM t2
DELETE #temp
  FROM #temp
  JOIN t2
    ON #temp.ID BETWEEN t2.min_id AND t2.max_id
 WHERE #temp.xuhao <> t2.max_xuhao

SELECT *
  FROM #temp

         ID     BiaoShi      ShenID      ShenHe       XuHao
----------- ----------- ----------- ----------- -----------
          1          18          19           1           1
          4          18          19           2           4
          5          18          19           4           5

------解决思路----------------------
t2里面按 Biao、ShenHe 分组,就这个差别。