查询以查找两个项目之间的区域的最低总价格

时间:2014-11-28 17:58:12

标签: mysql sql

这是一个包含样本元素的(简化)表格:

Item      Area      Price
Gas       Miami     6.00
Gas       LA        8.00
Gas       Dallas    2.00
Corn      Miami     2.00
Corn      LA        2.00
Corn      Dallas    5.00
Oil       Miami     8.00
Oil       LA        9.00
Oil       Dallas    3.00

我希望这个地区的玉米和天然气成本最低。所以在这张表中,答案是达拉斯,因为玉米和天然气的价格总和是7.00(在迈阿密它的8.00和洛杉矶它的10.00)。我很欣赏有关如何完成这项任务的任何想法。

(注意:我只提供油价,所以你知道清单上还有无数项目,因为每个项目都有更多区域。)

1 个答案:

答案 0 :(得分:2)

这是一个带有order by的汇总查询:

select area, sum(price) as sumprice
from simplifiedtable t
where item in ('gas', 'corn')
group by area
having sum(item = 'gas') = 1 and sum(item = 'corn') = 1
order by sum(price) asc
limit 1;

请注意,having子句可确保区域同时包含两种产品。