2013-01-17 5 views
1

주문한 모든 제품이 들어있는 주문 된 제품 테이블이 있습니다. 내가 trouser1이라는 제품을 가지고 있다고합시다.열 항목으로 계산하는 방법

order_id=1 name=trouser1 amount=1 
order_id=2 name=trouser1 amount=1 

가 지금은 판매 된 제품의 상위 10 개 목록을 만들고 싶어하지만, 동일한 제품 내 테이블에 한 번에 표시 할 필요가있다 : 나는 예를 들어 order1 및 order2 모두 그 주문은 그 안에 trouser1 하였음이있을 때 ordered_products에 추가 그러나 함께 추가 된 금액.

나는 다음과 같은 시도 :

SELECT * 
FROM ordered_products 
GROUP BY naam 
ORDER BY aantal DESC 
SUM(amount) 
WHERE name NOT UNIQUE 
그것은 작동하지 않습니다

,이 작업을 수행 할 수있는 방법이있다?

+0

'GROUP BY naam '근처의 오타는'GROUP BY name'이어야합니다. – Rikesh

답변

3

이 판매 된 제품의 상위 10 목록이 표시됩니다,

SELECT name, SUM(amount) totalAmount 
FROM ordered_products 
GROUP BY name 
ORDER BY totalAmount DESC 
LIMIT 10 

더 나은 성능을 위해, 열 name에 인덱스를 제공합니다.

+0

'ORDER BY' ..'DESC' :) – hjpotter92

+0

@BackinaFlash correct': D' –

+0

완벽하게 고마워했습니다 !!! – DaViDa

0
Select top 10 name, sum(amount) 
from ordered_products 
group by name 
order by sum(amount) desc 

정상 작동합니다. ;) 계산중인 합계를 표시하면됩니다. 그것을 주문하는 것이 아닙니다. * 당신을 위해 그것을하지 않습니다.

+0

여기에 혼란 스러울 여지가 있지만 사실은 MySQL을 사용하는 OP의 것 같아요 – Strawberry

+0

'SQL 서버'가'TOP'을 사용하기 때문에 올바른 것 같지만 불행히도'MySQL'은' LIMIT'. –

+0

그냥 'MySQL'태그를 놓친 것 같습니다. 이 방법은 물론 '제한', 정답입니다. – Dcortez

관련 문제