Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Schwierige Gruppierung in SQL

Was Sie tun müssen, ist, einen transienten Datensatz zu erstellen, der car_brand und den niedrigsten Preis für diese Marke (den ich brand_price nenne) enthält, und diese Daten dann wieder mit Ihrer ursprünglichen Autotabelle zu verknüpfen. Dadurch erhalten Sie die zusätzliche Information (Markenpreis), die Sie zum Sortieren der Daten benötigen:

 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