Вот версия, в основном та же, что и несколько других ответов, но которую вы можете скопировать и вставить в вашу SQL Server Management Studio для тестирования (и без создания нежелательных таблиц), благодаря некоторым встроенным значениям.
WITH [TestData]([ID],[SKU],[PRODUCT]) AS
(
SELECT *
FROM (
VALUES
(1, 'FOO-23', 'Orange'),
(2, 'BAR-23', 'Orange'),
(3, 'FOO-24', 'Apple'),
(4, 'FOO-25', 'Orange')
)
AS [TestData]([ID],[SKU],[PRODUCT])
)
SELECT * FROM [TestData] WHERE [ID] IN
(
SELECT MIN([ID])
FROM [TestData]
GROUP BY [PRODUCT]
)
Результат
ID SKU PRODUCT
1 FOO-23 Orange
3 FOO-24 Apple
Я проигнорировал следующее ...
WHERE ([SKU] LIKE 'FOO-%')
как единственная часть авторов ошибочного кода, а не часть вопроса. Это вряд ли будет полезно для людей, которые ищут здесь.