Поскольку вы не пометили ни одной СУБД , я бы использовал row_number()
:
select t.*
from (select product, productno, sum(count) as cnt,
row_number() over (partition by product order by sum(count) desc) as seq
from table t
group by product, productno
) t
where seq = 1;
Вы также можете использовать предложение LIMIT
(но не для каждого продукта):
select product, productno, sum(count) as cnt
from table t
group by product, productno
order by cnt desc
limit 1;
Для некоторых других СУБД требуется предложение TOP
вместо предложения LIMIT
, поэтому вы можете изменить его соответствующим образом, но идея будет такой же.