通过日志表记录的时间点,统计时间段的数据

问题:

通过日志表记录的时间点,统计时间段的数据

准备:
  • 工作记录日志表
    sn 法律案件的序列号,每个时间点的负责用户。如[10, 11)点为u1负责,[11, 16)为u2负责, 16点之后为u3负责
    wrk_record_log
sn user_id mark_time
sn001 u1 2020-03-01 10:00:00
sn001 u2 2020-03-01 12:00:00
sn001 u3 2020-03-01 16:00:00
sn002 u4 2020-03-01 11:00:00
sn002 u5 2020-03-01 15:00:00
  • 电话记录表
    每个案件电话沟通的工作人员、时长、创建时间
    tele_record
sn user_id duration create_time
sn001 u1 2 2020-03-01 10:20:00
sn001 x1 5 2020-03-01 11:50:00
sn001 u2 9 2020-03-01 14:50:00
sn001 x2 1 2020-03-01 16:50:00
sn002 x3 3 2020-03-01 15:10:00
sn002 x4 4 2020-03-01 16:50:00
  • 结果:需得出每个案件负责人的产能(非案件负责人的业绩、也统计为负责人的产能)
user_id sn duration
u1 sn001 7
u2 sn001 9
u3 sn001 1
u4 sn002 0
u3 sn002 7
实现
  • 两种方式: 可以通过窗口函数、分析函数实现、也可以通过sql关联实现,前者实现更加简单。
  • 实现难点在于通过工作记录日志表判断每通电话的负责人。所以查出每个工作人员负责时间段,即可判断。
    工作记录
sn user_id start_time end_time
sn001 u1 2020-03-01 10:00:00 2020-03-01 11:00:00
sn001 u2 2020-03-01 11:00:00 2020-03-01 16:00:00
sn001 u3 2020-03-01 16:00:00 null
sn002 u4 2020-03-01 11:00:00 2020-03-01 15:00:00
sn002 u5 2020-03-01 15:00:00 null
  • 分析函数

  • 直接关联。在某些特殊情况下,不能使用窗口函数。

你可能感兴趣的:(大数据,sql,sql)