4

次の構造のテーブルがあります

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 を持つ他のレコードを削除します (重複を削除します)。カーソルでこれを行う方法は知っていますが、単一のクエリでそのような操作を行う方法はありますか?

4

1 に答える 1