'MYSQL: Averaging the sum of two columns
Using MYSQL I am trying to get the avg amount spent by all the customers after determining the sum of what each customer spent.
select customernumber, round(sum(price_per_each*quantity_ordered),2) as 'ordertotal'
from orderdetails
join orders using (ordernumber)
join customers using (customernumber)
group by customernumber;
This gives me the sum of what each customer has spent across multiple orders. The results of this query are about hundred records, ranging from 8k to 900k.
I now need to get the avg of all the sum totals shown in the previous query. So far every time I try to write this, I get an error message regarding invalid use of group function.
When I try getting the average by using division via count(*), the number I get is in the 3k range which is too small compared to what is expected.
Please help. I am just starting to learn MySql and cannot seem to figure this out after several hours.
Solution 1:[1]
I would try the AVG function over the ordertotal column.
SELECT AVG(`ordertotal`)
FROM (
select customernumber, round(sum(price_per_each*quantity_ordered),2) as 'ordertotal'
from orderdetails
join orders using (ordernumber)
join customers using (customernumber)
group by customernumber
) nested;
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | HAL |