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

SQL去除重复行 查询每个playerid对应唯一总支付金额

问题原因

SUM() OVER (PARTITION BY playerid)属于窗口函数,窗口函数不会合并原始行,只会在每一条原始记录上追加对应分区的聚合计算结果,所以同一个playerid下有多少条单笔支付记录,最终结果就会返回多少行,才会出现你看到的重复汇总值问题。

正确写法

你要的是每个playerid仅返回1条汇总记录,直接用普通聚合搭配GROUP BY分组即可,不需要使用窗口函数:

SELECT
  playerid,
  SUM(payment_amount) AS total_payments
FROM DEPOSIT$
GROUP BY playerid
执行结果

运行后返回的结果完全匹配你的需求,无重复行:

playeridtotal_payments
100260
100350
100430
1006100
100860

补充:窗口函数的适用场景是需要同时保留单笔明细行、又要在每行附带维度聚合值的时候使用;如果只需要维度级别的汇总结果,GROUP BY聚合是性能更好、逻辑更直接的方案。

内容的提问来源于stack exchange,提问作者Haley H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:12:19