Подтвердить что ты не робот

MySQL выбирает SUM результатов с помощью LIMIT

У меня есть таблица, полная предметов и цен на указанные предметы. Я хотел бы взять SUM из 3 самых дорогих предметов.

Я подумал, может быть, SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3, но это не похоже на трюк. Это возможно? Спасибо!

4b9b3361

Ответ 1

select sum(price) from (select items.price from items order by items.price desc limit 3) as subt;

Ответ 2

LIMIT влияет на количество строк, возвращаемых запросом, и SUM возвращает только один. На основе этот поток вы можете попробовать:

SELECT sum(price) 
FROM (SELECT price
      FROM items
      ORDER BY price DESC
      LIMIT 3
) AS subquery;

Ответ 3

Просто используйте подвыбор:

select sum(prices) from (SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3) as prices

Ответ 4

Используйте подзапрос или что-то в этом роде. Просто идея, поскольку я не тестировал фактический запрос.

SELECT SUM(items.price) from (select price FROM items ORDER BY items.price LIMIT 3)

Ответ 5

Я не тестировал это, и я просто написал его в своей памяти. Вы можете попробовать что-то вроде:

SELECT * AS total FROM items ORDER BY price DESC
SELECT SUM(price) FROM total LIMIT 3;

Изменить: я был медленным