You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL SELECT查询中实现按column_b值重复累加计算

PostgreSQL 实现需求的两种方案

方案1:使用 GENERATE_SERIES 横向生成序列求和

该写法直观易读,适合逻辑需要频繁调整的场景:

SELECT
  t.column_a,
  SUM(0.75 * POWER(0.93, 0.1428 * i)) AS calculated_result
FROM
  你的业务表名 t,
  GENERATE_SERIES(1, t.column_b::INTEGER) AS series(i)
GROUP BY
  t.column_a, t.column_b;

说明:如果column_b存在小于1或者为NULL的情况,可添加WHERE t.column_b >= 1过滤异常值避免报错。

方案2:等比数列公式直接计算(高性能首选)

你的累加逻辑本质是首项为0.75 * POWER(0.93, 0.1428)、公比为POWER(0.93, 0.1428)的等比数列前N项和,可直接用数学公式计算,完全省去序列生成、分组聚合的开销,大数据量下性能优势显著:

SELECT
  column_a,
  0.75 * POWER(0.93, 0.1428) * (1 - POWER(POWER(0.93, 0.1428), column_b)) / (1 - POWER(0.93, 0.1428)) AS calculated_result
FROM
  你的业务表名;

说明:公比POWER(0.93, 0.1428)恒不等于1,无需处理分母为0的异常。


内容的提问来源于stack exchange,提问作者qubicswap.com

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:24:03