一键选择不同条件下的最小和最大

时间:2019-01-01 18:13:13

标签: mysql sql

我在1个表中有一个商品的报价和需求清单,我需要找到按商品分组的最高价要求和最低价报价

要以最高价格获得所有请求,并以最低价格获得所有报价,这不是一个大问题,但是我需要为每个请求都以最低价格获得报价。

我的桌子看起来像

ItemName |  Type   | ItemPrice
-----------------------
item1    | offer   | 100
item1    | offer   | 80
item1    | request | 120
item2    | offer   | 50
item2    | request | 30
item2    | request | 60

结果我需要

ItemName | OfferMinPrice | RequestMaxPrice
-----------------------
item1    |      80       |      120
item2    |      50       |       60

1 个答案:

答案 0 :(得分:2)

您可以只使用条件聚合:

select itemname,
       min(case when type = 'offer' then itemprice end) as min_offerprice,
       max(case when type = 'request' then itemprice end) as max_requestprice,
from t
group by itemname;