环境 本文方法在 impala 3.1.0 的环境下实现(spark sql也是同样的写法),下文用到的原始表 a_test 如下图所示: 实现方法 现在对 a_test 中的数据按照 name 分组,以 month_id 排序,对 amount 求累加和,代码如下: SELECT name, month_id, SUM(amount) OVER(PARTTION BY name ORDER BY month_id) AS amount_acc FROM income_record GROUP BY name, month_id, amount 得到的结果如下图所示: