swanrnd
@swanrnd
Издатель HTML5 игр

Как убрать лишнее из запроса?

SELECT item, SUM(left_items) AS left_items, MAX(price) AS price
FROM dbo.exchange
WHERE time_end>1 AND left_items>0
GROUP BY item, price;

a3a15c4a613040ba8b93ff541b4dcfe0.png

Нужно, что бы не было строки 2 (3 5 5).

Цель предложить самые выгодные предложения по цене.
  • Вопрос задан
  • 412 просмотров
Решения вопроса 1
streetflush
@streetflush
Select a.item, a.price,SUM(b.left_items) as left_items  from
(Select item, MAX(price) as price from dbo.exchange group by item) a
left join 
dbo.exchange b 
on a.item=b.item and a.price=b.price
group by a.item, a.price


Как то так неверн
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bondpuoq
@bondpuoq
Web-программист с недавних пор
Я думаю тут надо использовать partition by, например вот так:

SELECT item,
sum(left_items) over (partition by item order by price) as left_items,
first_value(price) over (partition by item order by price) as price
WHERE time_end>1 AND left_items>0

Если я правильно понял, то должно быть так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы