有一盘带有字段名称和价格的夹克。购买2件夹克,金额超过5000,第三件免费。您需要编写一个查询来返回 3 件夹克的名称和价格。同时,以最有利可图的方式,即前 2 件夹克应该是最便宜的,但它们的金额从 5000 起,相反,第三件夹克是最贵的。不得重复前 2 件夹克。
我决定从找到前 2 件夹克开始,并通过比较每件夹克的成本来解决这个问题,这里是查询:
select *
from jacket j1 join jacket j2
where j1.price + j2.price =
(select min(j1.price + j2.price)
from jacket j1 join jacket j2
where j1.price + j2.price >= 5000
and j1.name != j2.name)
limit 1
是否可以在此处附上返回最昂贵夹克的查询部分?或者是否需要完全改变请求的逻辑?甚至可以在一个请求中完成吗?