2011-11-07 4 views
0

SQL 쿼리를 수행하여 특정 고객에 대한 평균 지출을 얻으려고합니다. 나는 다음과 같은 SQL (이 slighlty이 예를 들어 아래로 절단)을 작성했습니다합계의 SQL 평균을 수로 나눈

..이 나에게 트랜잭션 카운트의 합을 제공

SELECT SUM(price) as sumPrice, COUNT(transactionId) as transactionCount, customerName 
FROM customers, transactions 
WHERE customers.customerId = transactions.customerId 
AND transactiontypeId = 1 
GROUP BY customers.customerId 

. 이것으로 나는 합계를 카운트로 나눠서 평균 지출을 얻을 수 있습니다. 그러나 나는 그것을 얻은 후에 데이터를 조작하는 것이 아니라 데이터베이스에서 바로 평균 값을 얻을 수 있기를 원합니다.

이렇게 할 방법이 있습니까? 나는 선택의 여지가 있지만 피난처 안에 선택을 쓰는 것을 가지고 놀았지만, 아직 행운이 없었기 때문에 여기에서 묻는다.

미리 감사드립니다.

+0

미안, 나는이 쿼리의 말에 의해 그룹이 ... 난 당신이 있기 때문에 대부분의 다른 RDBMS에서 분석 할 것이다 여전히 –

+0

를 업데이트 할 것'그룹화에있는 것보다 다른 필드를 BY' 'SELECT'리스트 – JNK

답변

3

MySQL에는 평균 평균 기능이 내장되어 있습니다.

SELECT AVG(price) AS averageSpend, customerName 
FROM customers, transactions 
WHERE customers.customerId = transactions.customerId 
AND transactiontypeId = 1 
GROUP BY customers.customerId 
+0

이렇게하면 고객과 관련된 행 (거래)의 수에 대한 평균을 계산할 수 있습니까? –

+0

'AVG()'에 의해 사용 된 카운트가 리턴 된 총 수이기 때문에'AVG (price)'는'SUM (price)/COUNT (transactions)'와 같은 결과를 줄 것이다 행. – Polynomial

+0

나는 지금 어리 석다! 고마워요. –

관련 문제