欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > SQL 的窗口函数 sum() over(partition by 字段 )

SQL 的窗口函数 sum() over(partition by 字段 )

2025/1/19 7:01:42 来源:https://blog.csdn.net/yuanyuan___/article/details/145142519  浏览:    关键词:SQL 的窗口函数 sum() over(partition by 字段 )

sum() over(partition by 字段)的基本用法如下:

  1. 分组‌:通过partition by指定一个或多个字段进行分组。例如,sum(销售额) over(partition by 产品类别)会将销售额按照产品类别进行分组。
  2. 排序‌:通过order by指定一个或多个字段进行排序。例如,sum(销售额) over(partition by 产品类别 order by 时间)会在每个产品类别内,按照时间顺序对销售额进行累计求和。
  • 实例
  • select t1.id,
    t1.ticket_id,
    t1.flow_type,
    t1.ticket_status,
    t1.create_time,
    t1.filte,
    sum(t1.filte) over (partition by t1.ticket_id order by t1.id asc) as sum_round 
    from  (SELECT *,
    case when flow_type = 9 then 1 else 0 end as filte 
    FROM mall.work_order_flow 
    WHERE date(create_time)> '2024-12-31')t1;

    客户处理的工单可能会一次完成,也有可能客户还有其他疑问,会多次重启

  • 需求:在工作流表中统计已完成第一轮重启的工单的完成时间有多久

  • 工作流表为,工单在每个角色处处理完成并流转进入下一个角色就会生成一条记录,当工单重启时,flow_type = 9,其他状态非9

  • 故首先将flow_type = 9 的明细值自定义为1,其他为0,并重新生成一个字段fiflte

  • 工单号ticket_id 分区,按照自增字段id 升序排序,对fiflte值求和,当重启1次,累计总和就会加+1,故第一轮重启后流转的工单明细,fiflte值全部为1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com