有一段时间遇到这个麻烦。
我有这样的数据库:
Car_ID Car_Brand Car_Model Car_Price 1 Ford Fiesta 4000 2 Ford Mustang 29000 3 Ford Focus 12000 4 Honda Civic 15000 6 Honda Jazz 5000 7 Toyota Prius 14000
我要执行搜索,找到最便宜的汽车,然后按价格升序订购其余相同品牌的汽车。
我希望我的输出是这样的:
Car_ID Car_Brand Car_Model Car_Price 1 Ford Fiesta 4000 3 Ford Focus 12000 2 Ford Mustang 29000 6 Honda Jazz 5000 4 Honda Civic 15000 7 Toyota Prius 14000
最便宜的汽车是福特嘉年华(Forest Fiesta),因此,其余福特车型都按照价格直接订购。然后,本田拥有第二便宜的车型,因此爵士车和其他本田车紧随其后,依此类推。
这可能吗?
您需要做的是创建一个瞬态数据集,该数据集包含car_brand和该品牌的最低价格(我将其称为brand_price),然后将数据联接回到原始的car表中。这将为您提供对数据进行排序所需的其他信息(brand_price):
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