MySQL выбирает СУММУ результатов с ПРЕДЕЛОМ - PullRequest
18 голосов
/ 26 марта 2012

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

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

Ответы [ 5 ]

35 голосов
/ 26 марта 2012
select sum(price) from (select items.price from items order by items.price desc limit 3) as subt;
6 голосов
/ 26 марта 2012

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

SELECT sum(price) 
FROM (SELECT price
      FROM items
      ORDER BY price DESC
      LIMIT 3
) AS subquery;
1 голос
/ 26 марта 2012

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

SELECT SUM(items.price) from (select price FROM items ORDER BY items.price LIMIT 3)
1 голос
/ 26 марта 2012

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

select sum(prices) from (SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3) as prices
0 голосов
/ 26 марта 2012

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

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

Редактировать: я был медленным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...