PostgreSQL中对比两列数据并将绝对差值输出至新列的实现
具体操作步骤
- 第一步:为数据表新增存储绝对值差值的列
执行以下SQL,替换语句中的表名、自定义新列名即可,数值精度可根据你的实际业务需求调整:ALTER TABLE 你的实际表名 ADD COLUMN diff_abs NUMERIC(10,2); - 第二步:更新新列值,计算
Part A减Part B的绝对值存入
注意列名包含空格,需要用双引号包裹:UPDATE 你的实际表名 SET diff_abs = ABS("Part A" - "Part B");
运行结果示例
对应你提供的测试数据,执行后表数据如下:
| Part A | Part B | diff_abs |
|---|---|---|
| 49.56 | 50.00 | 0.44 |
| 49.99 | 50.50 | 0.51 |
| 50.12 | 50.10 | 0.02 |
| 50.51 | 50.50 | 0.01 |
可选优化方案
如果希望后续新增/修改Part A、Part B数据时,差值自动更新无需手动执行UPDATE语句,可以直接创建自动计算的生成列:
ALTER TABLE 你的实际表名 ADD COLUMN diff_abs NUMERIC(10,2) GENERATED ALWAYS AS (ABS("Part A" - "Part B")) STORED;
内容的提问来源于stack exchange,提问作者kukuruyu
相关产品推荐
相关产品推荐

