`
郭清明
  • 浏览: 16973 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

快速求和

 
阅读更多
VAR v_target NUMBER;
EXEC :v_target := 10;

SELECT id,amount,(CASE WHEN total<=:v_target THEN amount ELSE :v_target - last_total END) AS selected_amount
  FROM (
SELECT t.*
      ,SUM(amount) OVER(ORDER BY amount,id) as total
      ,SUM(amount) OVER(ORDER BY amount,id) - amount as last_total
  FROM t_money t
)
WHERE total<=:v_target
      OR total>:v_target
         AND last_total<:v_target
ORDER BY total;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics