Извините, я неправильно понял вопрос.
SELECT col1, MIN(col2) as col2
FROM table
GROUP BY col1
Конечно, возвращает соответствующие строки, но, если вы не можете изменить таблицу, добавив уникальный идентификатор, вам нужно сделать что-то вроде:
DELETE FROM test
WHERE col1 + '|' + col2 NOT IN
(SELECT col1 + '|' + MIN(col2)
FROM test
GROUP BY col1)
Что должно работать при условии, что символ канала никогда не появляется в вашем наборе.