これはあなたを助けるはずです..
最初のものにはバグがありましたが、現在更新されています。
SELECT t.*
FROM (
SELECT @lim := 2,
@cg := ''
) vars,
(select * from Table1 order by product,amount, make) t
WHERE CASE WHEN @cg <> product THEN @r := @lim ELSE 1 END > 0
AND (@r := @r - 1) >= 0
AND (@cg := product) IS NOT NULL
ORDER BY
product,amount, make
それとフィドラーを楽しんでください: http://sqlfiddle.com/#! 2 / bdd1a / 115/0