У меня есть таблица со следующей структуройSQL удалить дубликаты из GROUP BY результатов
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 (удалить его дубликат licates). Я знаю, как это сделать с помощью курсоров, но есть ли способ сделать такую операцию в одном запросе?
Какая база данных? – TechDo
@techdo SQL Server 2008 r2 – Alex
без курсора вы можете использовать временную таблицу и достичь этого. – Sachin