I have the following table data:
value
1
5
10.5
12
36
I want to map these values into:
range avg
0-21 (1 + 5 + 10.5 + 12) / 4
21.001-34 0
34.001-64 36
64 + 0
Basically map each value to ranges and calculate the avg of all values in each range.
I tried to do:
select
case
when avggeneral between 0 and 21 then ' 0-21'
when avggeneral between 21.00001 and 34 then ' 21-34'
when avggeneral between 34.00001 and 64 then ' 34-64'
else '64+'
end as 'range',
AVG(*) as 'avg'
from table
but this doesn't work... I don't know how to make the static ranges...
How can I do that in MySQL?
Methology should be: 1. Map values into these groups ( 0-21, 21-34 etc..) 2. calulate AVG in each group.
Desired output for above example is this:
range avg
0-21 7.125
21.001-34 0
34.001-64 36
64 + 0
The range
column is static. Always with 5 rows.
The avg
column is dynamic.. the values there are the actual AVGs of value
column.