设置直方图的bin大小

时间:2019-07-19 16:21:24

标签: mysql

我的数据库表由4个字段组成,代表客户投资组合中某人某年的存款。该表具有数百万条记录。例如

Person1,ClientA,2019,10000
Person2,ClientA,2019,8000
Person3,ClientA,2019,10500
Person4,ClientA,2019,23000
Person1,ClientB,2019,500
Person2,ClientB,2019,520
Person3,ClientB,2019,530
Person4,ClientB,2019,540

我将创建一个查询,向我显示某个客户投资组合中有多少人的存款在X到Y之间。例如

ClientA,<10000,651
ClientA,10000-11000,4831
ClientA,11000-12000,5687
...
ClientA,22000-23000,1
...
ClientB,500-525,2
ClientB,525-550,2
...

如您所见,客户端B的存储区大小与客户端A的存储区大小不同。

我假设我想将每个客户端的数据分成20个bin。所以我可以绘制20条柱形图。

我创建了一个子查询,用于查找每个客户和每年的最大值。例如

max value for ClientA and year 2019 = 23000
max value for ClientB and year 2019 = 850

基于此,我将垃圾箱定义为:

1st bin for ClientA = 23000/20*0 < deposit < 23000/20*1
2nd bin for ClientA = 23000/20*1 < deposit < 23000/20*2
...

如果沉积物均匀分布,效果很好。但是在我的示例中,ClientA的大多数存款在10000和12000之间,但是我的图表还显示了一些条数为1人的条形图。

如何创建这样的查询,以便仅显示最相关的案例?我正在寻找一个相对轻量级的解决方案和查询,但又不太详细。如果您有500万条记录,则不需要详细信息。

0 个答案:

没有答案