Попробуйте использовать Row_number с разделением по.Вот схема таблицы:
CREATE TABLE docs (
ProductName varchar(50) NOT NULL,
CategoryID int NOT NULL
) ;
INSERT INTO docs (ProductName ,CategoryID ) VALUES
('Mac', 1),
('HP', 3),
('Walker', 1 ),
('Bell', 2 ),
('Dell', 4 ),
('Lenova', 3),
('Pixel', 2)
Затем запустите, используя foll.запрос выбора:
SELECT ProductName, CategoryID
from(
SELECT CategoryID, ProductName,
row_number() over (partition by CategoryID order by ProductName ) as rn
from docs ) tab
where rn = 1;
Возвращает вывод как
+++++++++++++++ ++++++++++++++
+ ProductName + + CategoryID +
+++++++++++++++ ++++++++++++++
Mac 1
Bell 2
HP 3
Dell 4