У меня есть следующие данные таблицы:
value
1
5
10.5
12
36
Я хочу отобразить эти значения в:
range avg
0-21 (1 + 5 + 10.5 + 12) / 4
21.001-34 0
34.001-64 36
64 + 0
По сути, сопоставить каждое значение с диапазонами и рассчитать среднее значение всех значений вкаждый диапазон.
Я пытался сделать:
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
, но это не работает ... Я не знаю, как сделать статические диапазоны ...
Как я могу это сделать в MySQL?
Метология должна быть: 1. Отображать значения в эти группы (0-21, 21-34 и т. Д.) 2. Вычислять AVG в каждой группе.
Желаемый вывод для приведенного выше примера:
range avg
0-21 7.125
21.001-34 0
34.001-64 36
64 + 0
Столбец range
является статическим.Всегда с 5 рядами.Столбец avg
является динамическим. Значения - это фактические значения AVG для столбца value
.