Here is a version, basically the same as a couple of the other answers, but that you can copy paste into your SQL server Management Studio to test, (and without generating any unwanted tables), thanks to some inline values.
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
I have ignored the following …
WHERE ([SKU] LIKE 'FOO-%')
as its only part of the authors faulty code and not part of the question. It’s unlikely to be helpful to people looking here.