You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SQL查询,统计多时间段内带随访的预约数量?

扩展多时间段随访预约统计的解决方案

要实现同时统计1-30天、31-90天两个时间段的随访预约数量,最简洁高效的方式是使用条件聚合(CASE WHEN + COUNT),无需多次关联表。以下是修改后的SQL查询:

select
  appt1.employee_id, 
  Date(appt1.appointmentTime) as first_appt_date, 
  -- 统计1-30天内有随访的预约数
  COUNT(DISTINCT CASE WHEN DATEDIFF(appt2.appointmentTime, appt1.appointmentTime) BETWEEN 1 AND 30 THEN appt1.id END) as appt_followup_1_30,
  -- 统计31-90天内有随访的预约数
  COUNT(DISTINCT CASE WHEN DATEDIFF(appt2.appointmentTime, appt1.appointmentTime) BETWEEN 31 AND 90 THEN appt1.id END) as appt_followup_31_90
from appointment as appt1
left join appointment as appt2 
  on appt1.customer_id = appt2.customer_id
  and appt2.appointmentTime > appt1.appointmentTime  -- 确保随访预约在当前预约之后
  and appt1.employee_id is not null
group by appt1.employee_id, Date(appt1.appointmentTime)

关键改动说明:

  1. 替换内连接为左连接:原查询用内连接会过滤掉没有后续随访的预约记录,改用左连接可以保留所有员工的每日预约数据,无对应随访的列会显示为0。
  2. 条件聚合实现多维度统计:通过CASE WHEN分别判断随访时间落在不同区间,再用COUNT(DISTINCT)统计符合条件的原始预约ID,确保每个预约只被统计一次。
  3. 明确时间先后逻辑:新增appt2.appointmentTime > appt1.appointmentTime避免出现随访时间早于当前预约的异常数据。

如果不需要保留无随访的预约记录,也可以继续使用内连接,但左连接的适用性更广。

内容的提问来源于stack exchange,提问作者stevo999999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:42:25