2012-03-26 15 views
13

上記のアイテムのアイテムと価格でいっぱいのテーブルがあります。私は3つの最高値段の項目の合計を取得したいと思います。MySQL select LIMITを使用した結果の合計

私はおそらくSELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3と思っていましたが、それはやっているようです。これは可能ですか?ありがとう!ただ、サブ選​​択を使用

答えて

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

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

LIMITは、クエリによって返される行の数に影響を与え、SUMは一つだけを返します。 this threadに基づいて、あなたがしようとする場合があります:

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

はそのようなサブクエリか何かを使用してください。私は実際のクエリをテストしていないので、単なるアイデアです。

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

正解でした。クエリが動作する 'SUM(price)' – PotatoFro

0

私はこれをテストしていないと私はちょうど私の記憶にそれを書きました。

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

編集:あなたのような何かを試みることができる私はそれが私が `SUM(items.price)`クエリが失敗を書くときようだが、テーブルのつまりを除外することを除いて遅い

関連する問題