I have follwing data :
Product Price StartDate EndDate Apples 4.9 2010-03-01 00:00:00.000 2010-03-01 00:00:00.000 Apples 4.9
Here is a SQLFiddle demo
with t2 as ( select t1.*, (select count(Price) from t where startdatet1.price and Product=t1.Product ) rng from t as t1 ) select Product,Price,min(startDate),max(EndDate) from t2 group by Product,Price,RNG order by 3