MySQL - SUM() OVER() 函数用法详解
发布日期:2021-06-30 23:37:53 浏览次数:2 分类:技术文章

本文共 601 字,大约阅读时间需要 2 分钟。

  • 测试数据
select * from wmg_test;

 

  • 按照 v2 排序,累计 n+n-1+....+1
select v1,v2,sum(v2) over(order by v2) as sumfrom wmg_test;

 

  • 先分组,组内在进行上一个案例中的操作
select v1,v2,sum(v2) over(partition by v1 order by v2) as sumfrom wmg_test;

 

  • 稳定排序
select v1,v2,sum(v2) over(partition by v1 order by v1) as sumfrom wmg_test;

 

  • 相同 key 的进行回填处理
select v1,v2,sum(v2) over(partition by v1) as sumfrom wmg_test;

 

  • 取一条
select distinct v1,sum_01                             from (    select v1,sum(v2) over(partition by v1) as sum_01    from wmg_test) a;

  • 当然也可以逆序累加,只需 order by desc 即可

 

总结(group by & partition by)

  • group 单纯分组
  • partition 也能分组,但还具备累计的功能

转载地址:https://lux-sun.blog.csdn.net/article/details/117448665 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:MySQL - OVER() 函数的隐藏功能
下一篇:LeetCode(数据库)- 查询回答率最高的问题

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年05月01日 12时54分59秒