Wat u moet doen, is een tijdelijke gegevensset maken die car_brand en de laagste prijs voor dat merk bevat (die ik merk_price zal noemen), en vervolgens die gegevens VOEREN terug naar uw oorspronkelijke autotabel. Dit geeft je het extra stukje informatie (brand_price) dat je nodig hebt om de gegevens te sorteren:
SELECT car_id, car_brand, car_model, price FROM cars C1
JOIN (select car_brand, MIN(price) AS brand_price FROM cars GROUP BY car_brand) C2
ON C1.car_brand = C2.car_brand
ORDER BY C2.brand_price, C1.car_brand, C1.price