Как создать гистограмму с помощью MySQL
Я пытаюсь создать данные гистограммы, используя следующий запрос:
SELECT FLOOR(Max_Irrad/10) AS bucket, COUNT(*) AS COUNT
FROM marctest.test_summarynimish
where Lcu_name='Allegro'
and Lcu_Mode='Standard'
GROUP BY bucket;
следующий результат, который я получаю:
bucket count
0 3
4 3
5 12
7 6
8 3
10 3
Теперь поле ковша-это диапазон или БИН, используемый в гистограмме. Я хочу создать значения ведра с согласованным диапазоном, например, начиная с 0,4,8,12.... и так далее.. Есть ли способ достичь этого в MySQL? Вот как я ожидаю получить результат:
bucket count
0 3
4 21
8 6
2 ответов
Я думаю, что мы можем использовать следующую форму для создания общей гистограммы:
select (x div 4) * 4 as NewX, count(*) as NewY from histogram
group by NewX
здесь x
является реальным значением X оси x и count(*)
является реальным значением y. Число 4
- это размер значений x, которые мы хотим сгруппировать. Это означает, что мы сгруппируем все значения x в группы по 4 (например: группа 1-0, 1, 2, 3; Группа 2-4, 5, 6, 7 и т. д.). Количество каждого элемента в группе станет значением NewY
вы можете играть с этим здесь
применяя эту логику к вашему запросу, это будет:
select (floor(Max_Irrad/10) div 4) * 4 as NewX, count(*) as NewY
from marctest.test_summarynimish
where Lcu_name='Allegro' and Lcu_Mode='Standard'
group by NewX
Дайте мне знать, если у вас возникли проблемы или сомнения по этому поводу.