如何使用MySQL创建直方图

NIM*_*NDE 8 mysql sql histogram

我正在尝试使用以下查询创建直方图数据:

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;
Run Code Online (Sandbox Code Playgroud)

以下是我得到的结果:

bucket count
 0        3
 4        3
 5       12
 7        6
 8        3
10        3
Run Code Online (Sandbox Code Playgroud)

现在,bucket字段是直方图中使用的范围或bin.我想创建一个具有一致范围的存储桶值,例如从0,4,8,12 ....开始等等.有没有办法在mysql中实现这一点?这就是我期望得到的结果:

 bucket count
 0        3
 4       21
 8        6
Run Code Online (Sandbox Code Playgroud)

Mos*_*cho 7

我想我们可以使用以下一般形式来创建一般直方图:

select (x div 4) * 4 as NewX, count(*) as NewY from histogram
group by NewX
Run Code Online (Sandbox Code Playgroud)

xx轴的实际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
Run Code Online (Sandbox Code Playgroud)

如果您对此有任何疑问或疑问,请告诉我.

  • 上述方法是正确的,只是它不会报告具有零样本的桶。 (2认同)