2012-03-26 10 views
13

ile sonuçların SUM değerini seçin Söz konusu öğeler için öğeler ve fiyatlar içeren bir tablom var. En yüksek fiyatlı 3 ürünün SUM'unu almak istiyorum.MySQL LIMIT

Belki de SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3 diye düşündüm ama bu işe yaramaz gibi görünmüyor. Mümkün mü? Teşekkürler!

cevap

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

Sadece kullandığınız bir alt select:

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

LIMIT sorgusunun döndürdüğü satır sayısını etkiler ve SUM yalnızca birini döndürür. this thread dayanarak, denemek isteyebilirsiniz:

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

böyle bir alt sorgu falan kullanın. Gerçek bir sorguyu test etmediğim için sadece bir fikir.

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

Doğru cevap oldu. 'SUM (fiyat)' sorgu çalışır – PotatoFro

0

Bunu test etmedim ve sadece belleğime yazdım.

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

Düzenleme: Sen gibi bir şey deneyebilirsiniz bunu ben `SUM (items.price)` sorgu başarısız yazarken görünüyor, ancak tablo ie dışarıda bırakarak dışında yavaş