2012-03-26 7 views
13

해당 항목에 대한 품목 및 가격으로 가득 찬 테이블이 있습니다. 나는 3 가지 최고 가격 품목의 합계를 얻고 싶다.MySQL select LIMIT가 포함 된 결과 SUM

아마 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)`쿼리가 실패를 쓸 때 보이지만, 테이블 예를 떠나는 것을 제외하고 느린