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

PostgreSQL如何对表内相同月份两列做减法生成新列

PostgreSQL同月份字段计算实现方案

你可以按month字段分组聚合实现需求:同月份下value1、value2的非0值各仅存在一条,直接对两个字段按月份求和就能得到对应的有效值,再做减法即可得到value3。

临时查询得到预期结果

SELECT 
  SUM(value1) AS value1,
  SUM(value2) AS value2,
  month,
  SUM(value1) - SUM(value2) AS value3
FROM 你的实际表名
GROUP BY month
ORDER BY month;

执行以上语句即可直接返回你给出的预期输出结果。

如需将value3永久存入表中

  1. 先给表新增value3字段
ALTER TABLE 你的实际表名 ADD COLUMN value3 NUMERIC;
  1. 按月份批量更新所有行的value3值
WITH month_calculate AS (
  SELECT 
    month,
    SUM(value1) - SUM(value2) AS calc_value3
  FROM 你的实际表名
  GROUP BY month
)
UPDATE 你的实际表名 t
SET value3 = mc.calc_value3
FROM month_calculate mc
WHERE t.month = mc.month;

内容的提问来源于stack exchange,提问作者val ezeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:57:03