How can I remove only consecutive duplicate fields when the id is not consecutive in MySQL
This should do the job :

SELECT
  ph1.sku, 
  ph1.id as ph1Id, 
  ph2.id as ph2Id, 
  ph1.histDate,
  ph2.amount as oldAmount, 
  ph1.amount as newAmount 
FROM priceHistory as ph1 
LEFT JOIN priceHistory as ph2 ON
ph2.id = 
(SELECT max(id) FROM priceHistory AS ph3 WHERE ph3.id &lt; ph1.id and ph1.SKU = ph3.SKU)
WHERE ph1.amount &lt;&gt; ph2.amount OR 
      ph2.amount is null


Here is the fiddle.