You need to enable JavaScript to run this app. 如何编写SQL实现按10为区间统计转账金额分布
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL实现按10为区间统计转账金额分布

按10为区间统计转账金额分布的SQL实现

假设转账记录表名为transfer,金额字段为amount,具体语句如下:

SELECT 
  CONCAT(FLOOR(amount / 10) * 10, '-', FLOOR(amount / 10) * 10 + 9) AS 金额区间,
  COUNT(*) AS 交易笔数
FROM transfer
GROUP BY FLOOR(amount / 10)
ORDER BY FLOOR(amount / 10) ASC;

代码逻辑说明

  • 核心通过FLOOR(amount / 10)做区间分组:该计算会将所有落在同一个10区间的金额映射为同一个整数,比如0-9的金额计算结果都是0,10-19的计算结果都是1,自然完成区间分组
  • 分组后拼接成符合要求的区间展示文本,再聚合统计每个区间的交易数量
  • 最后按区间值排序,保证输出结果按金额从小到大排列

不同数据库适配

如果使用PostgreSQL,仅需调整字符串拼接语法即可:

SELECT 
  (FLOOR(amount / 10) * 10) || '-' || (FLOOR(amount / 10) * 10 + 9) AS 金额区间,
  COUNT(*) AS 交易笔数
FROM transfer
GROUP BY FLOOR(amount / 10)
ORDER BY FLOOR(amount / 10) ASC;

如果需要统计区间内的总交易金额,只需在SELECT中新增SUM(amount) AS 区间总金额即可。

内容的提问来源于stack exchange,提问作者Avinash Tiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 04:39:01