Try this:
SELECT a.product_id,a.purchaser_id,
COUNT(DISTINCT a.purchaser_id) AS unique_purchasers,
c.totalcount as repeat_purchasers
FROM main_table a
INNER JOIN (SELECT product_id, purchaser_id, COUNT(*)-1 totalCOunt
FROM main_table GROUP BY product_id, purchaser_id
) C ON C.product_id=a.product_id AND a.purchaser_id=C.purchaser_id
GROUP BY product_id, purchaser_id
Result:
PRODUCT_ID PURCHASER_ID UNIQUE_PURCHASERS REPEAT_PURCHASERS
1 1 1 2
1 2 1 1
1 3 1 0
2 1 1 0
2 2 1 3
2 3 1 3
2 4 1 1
See result in Fiddle.