我正在尝试使用以下查询创建直方图数据:
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
现在,bucket字段是直方图中使用的范围或bin。我想创建一个具有一致范围的存储桶值,例如从0,4,8,12 ....开始等等。有没有办法在mysql中实现这一点? 这就是我期望得到的结果:
bucket count
0 3
4 21
8 6
答案 0 :(得分:7)
我认为我们可以使用以下一般形式来创建一般直方图:
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值
您可以使用此here
将此逻辑应用于您的查询,这将是:
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
如果您对此有任何疑问或疑问,请与我联系。
答案 1 :(得分:0)
只需将Max_Irrad除以40而不是10,就可以让你的水桶更大。