次の構造のテーブルがあります
sys_id(identity) | id | group_id | fld_id | val
-----------------------------------------------
質問があります
SELECT id,group_id,fld_id,val,COUNT(*)
FROM [DB_ALERT].[dbo].[DATATABLE]
GROUP BY id,group_id,fld_id,val
HAVING COUNT(*)>1
結果セットはこんな感じ
ID | group_id | fld_id | val| count(*)
__________________________________________
1000001| 1 | 1 | 23 | 2
1000003| 1 | 1 | 24 | 5
1000008| 1 | 1 | 14 | 4
結果セットで、各レコードの上位 1 つの sys_id のみを取得し、同じ ID、Group、Fld、および val を持つ他のレコードを削除します (重複を削除します)。カーソルでこれを行う方法は知っていますが、単一のクエリでそのような操作を行う方法はありますか?