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

SQL实现:将客户均匀分配至同城市可用销售人员

客户与同城市销售人员均匀分配方案

核心思路

基于同一城市分组,对客户和销售人员分别排序后,通过取模运算实现均匀分配,确保每个销售人员的客户数量差异不超过1。

具体实现步骤(以SQL为例)

假设已关联的中间表名为city_linked_data,包含字段:customer_id(客户ID)、customer_name(客户名称)、city(城市)、sales_id(销售ID)、sales_name(销售名称)

  1. 按城市统计可用销售人员数量
WITH sales_count_per_city AS (
    SELECT city, COUNT(DISTINCT sales_id) AS sales_num
    FROM city_linked_data
    GROUP BY city
),
  1. 对每个城市内的客户进行排序编号
ranked_customers AS (
    SELECT 
        c.*,
        ROW_NUMBER() OVER (PARTITION BY c.city ORDER BY c.customer_id) AS customer_rank
    FROM city_linked_data c
    JOIN sales_count_per_city s ON c.city = s.city
)
  1. 匹配销售人员完成均匀分配
SELECT 
    rc.customer_id,
    rc.customer_name,
    rc.city,
    s.sales_id,
    s.sales_name
FROM ranked_customers rc
JOIN (
    SELECT 
        city,
        sales_id,
        sales_name,
        ROW_NUMBER() OVER (PARTITION BY city ORDER BY sales_id) AS sales_rank
    FROM city_linked_data
    GROUP BY city, sales_id, sales_name
) s ON rc.city = s.city
    AND (rc.customer_rank % s.sales_num) + 1 = s.sales_rank
ORDER BY rc.city, s.sales_id, rc.customer_id;

关键说明

  • 取模运算(customer_rank % sales_num) + 1能保证客户被均匀分配,避免出现某销售人员分配客户过多的情况
  • 排序字段(customer_id、sales_id)可根据实际业务需求替换为其他字段(如客户创建时间、销售人员入职时间等)
  • 若销售人员名单变动,重新执行该逻辑即可快速更新分配结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:03:46