我在[[pricing表中有2列:car_id和price
我想car_id
例如,
car_id | price
---------------
1 | 2
1 | 5
2 | 3
2 | 1
2 | 10
3 | 7
3 | 3
3 | 8
应该这样排序:
car_id | price --------------- 2 | 1 2 | 3 2 | 10 1 | 2 1 | 5 3 | 3 3 | 7 3 | 8
如何编写执行此操作的查询?我正在使用MySQL V5.6。
order by
中使用窗口功能:select p.*
from pricing p
order by min(price) over (partition by car_id),
car_id;
car_id
处理多个car_id
具有相同最低价格的情况。在旧版本的MySQL中,您可以对子查询执行类似的操作:
select p.* from pricing p order by (select min(p2.price) from pricing p2 where p2.car_id = p.car_id), car_id;
select *,
(
select min(price)
from datatab d2
where d1.car_id = d2.car_id
) min_price
from datatab d1
order by min_price, price