мин и макс при разных условиях в один выбор - PullRequest
0 голосов
/ 01 января 2019

У меня есть список предложений и запросов товаров в 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 голосов
/ 01 января 2019

Вы можете просто использовать условное агрегирование:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...