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

PostgreSQL如何按自定义规则对列值条件求和并分组去重

SQL查询实现方案

直接通过CASE WHEN做条件聚合即可,该写法兼容MySQL、PostgreSQL、SQL Server、Hive等绝大多数主流SQL引擎,替换语句中的表名为实际业务表名就能运行:

SELECT
    Name,
    SUM(
        CASE
            WHEN Val_Num = 1 THEN 1
            ELSE 0.5
        END
    ) AS Val_Num
FROM 替换为你的实际表名
GROUP BY Name;

逻辑校验

对照样例数据的计算结果完全匹配预期:

  • Joey共2条记录:1条值为1累加1,1条值为2累加0.5,最终结果1.5
  • Chandler共1条记录:值为2累加0.5,最终结果0.5
  • Monica共2条记录:值分别为3、2,各累加0.5,最终结果1

如果使用MySQL,也可以用内置IF函数写更简洁的版本,逻辑和通用写法完全一致:

SELECT
    Name,
    SUM(IF(Val_Num = 1, 1, 0.5)) AS Val_Num
FROM 替换为你的实际表名
GROUP BY Name;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:01:06