Suppose if my Input is:
ID GroupID Qty
1 1 100
2 1 200
3 1 300
4 2 98
5 2 198
6 3 175
7 3 27
The best and more flexible way in my opinion would be to use ROW_NUMBER(). The below I've tested for your example, just replace tmpTable with your table name:
SELECT a.* FROM tmpTable a INNER JOIN
(SELECT ROW_NUMBER() over(PARTITION BY GroupID ORDER BY ID, GroupID) AS SEQ, tmpTable.*
FROM tmpTable) b
ON a.ID = b.ID AND a.GroupID = b.GroupID
WHERE b.SEQ = 1
read more about how to use ROW_NUMBER: https://docs.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql