2011-11-07 2 views
0

Я пытаюсь выполнить SQL-запрос, чтобы получить средние затраты для конкретного клиента.sql среднее от суммы, деленной на счет

Я написал следующий SQL (это slighlty вырубать для этого примера) ..

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

извините, у меня есть группа по в конце этого запроса .. Я буду обновлять его –

+0

все равно не разобрать в большинстве других СУБД, так как вы 'GROUPING BY' другое поле, чем то, что находится в 'SELECT' list – 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 (price)' даст вам тот же результат (добавьте их, разделите по счету) как 'SUM (цена)/COUNT (транзакции)', потому что счетчик, используемый 'AVG()', является общим числом возвращенных строк. – Polynomial

+0

Теперь я чувствую себя глупо! Большое спасибо –

Смежные вопросы