Если не будет дубликатов для максимального значения, вы просто вычтите 1 из COUNT:
SELECT product, COUNT(*) - 1 AS counter FROM products GROUP BY product;
, и это в случае, если есть дубликаты, и вы хотите, чтобы они все были исключены:
SELECT p.product, COUNT(*) AS counter
FROM products p
WHERE p.value < (SELECT MAX(value) FROM products WHERE product = p.product)
GROUP BY p.product;
или если вы хотите вернуть нули:
SELECT
p.product,
COUNT(*) - (
SELECT COUNT(*)
FROM products
WHERE
product = p.product
AND
value = (
SELECT MAX(value) FROM products WHERE product = p.product
)
) AS counter
FROM products p
GROUP BY p.product;