Ответ 1
select sum(price) from (select items.price from items order by items.price desc limit 3) as subt;
У меня есть таблица, полная предметов и цен на указанные предметы. Я хотел бы взять SUM из 3 самых дорогих предметов.
Я подумал, может быть, SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3
, но это не похоже на трюк. Это возможно? Спасибо!
select sum(price) from (select items.price from items order by items.price desc limit 3) as subt;
LIMIT
влияет на количество строк, возвращаемых запросом, и SUM возвращает только один. На основе этот поток вы можете попробовать:
SELECT sum(price)
FROM (SELECT price
FROM items
ORDER BY price DESC
LIMIT 3
) AS subquery;
Просто используйте подвыбор:
select sum(prices) from (SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3) as prices
Используйте подзапрос или что-то в этом роде. Просто идея, поскольку я не тестировал фактический запрос.
SELECT SUM(items.price) from (select price FROM items ORDER BY items.price LIMIT 3)
Я не тестировал это, и я просто написал его в своей памяти. Вы можете попробовать что-то вроде:
SELECT * AS total FROM items ORDER BY price DESC
SELECT SUM(price) FROM total LIMIT 3;
Изменить: я был медленным