我需要将一些数据分组以在图表中显示但是......对我来说太难了: - (
在一张表中,我有客户信息,其中包括名称,公斤和年营业额
CustomerA 8 415.86
CustomerB 145846 6815.80
..............
CustomerZC 25160 25690.30
我需要COUNT个购买少于50公斤的客户,从51到100购买的数量,从100到1.000,从1000到30.000等等 但由于组限制不相似,因此每个范围的边界都存储在另一个表中,看起来像
Group0 0-50
Group1 51-100
Group2 101-1000
.....
Group15 1000001-5000000
Group16 5000001-9999999999
但如果有帮助我可以修改它
我的目标是得到这样的结果:
0-50 14217
51-100 6425
101-1000 841
....
1000001-5000000 43
现在我实现了这个结果,产生了15个不同的查询,但我想制作一个可以适应不同数量的组的全局算法
由于
答案 0 :(得分:1)
This one类似,请查看连接到范围表的第二个选项。
在你的情况下,它看起来像这样:
select r.boundary_name, coalesce(count(*), 0) as cnt
from ranges r
left join customers c
on c.kgs between r.low_range and r.high_range
group by r.boundary_name;
当然,如果您正在寻找独家范围与包含范围,则您需要调整连接,并且范围表将需要一个低限和高限列。