You need to enable JavaScript to run this app. PL/SQL迭代中分配序号:按经理分组为下属销售代表编号
优惠活动
大模型
产品
解决方案
定价
更多

PL/SQL迭代中分配序号:按经理分组为下属销售代表编号

解决方案

核心逻辑

你之前的方案没生效,大概率是用了全局计数器,没有按经理维度单独维护计数。正确逻辑是:处理每个经理的数据时,单独初始化一个从1开始的计数器,每处理完该经理下的一名销售代表,计数器自增1,切换到下一位经理时重置计数器即可。

代码示例

场景1:Python处理结构化数据

假设你的原始数据为字典列表格式,处理代码如下:

# 示例原始数据
manager_data = [
    {"Manager_id": "Manager_1", "Sales_reps": ["张XX", "李XX"]},
    {"Manager_id": "Manager_2", "Sales_reps": ["王XX", "赵XX", "刘XX", "孙XX"]},
    {"Manager_id": "Manager_3", "Sales_reps": ["周XX", "吴XX"]}
]

# 处理逻辑
for manager in manager_data:
    print(f"{manager['Manager_id']}:")
    # enumerate参数start=1直接从1开始计数,无需手动维护计数器变量
    for seq, rep in enumerate(manager["Sales_reps"], start=1):
        print(f"Rep_{seq}")
    # 不同经理输出结果空行分隔
    print()

运行后输出和你要求的格式完全一致。

场景2:SQL直接查询生成编号

如果数据存储在关系型数据库中,直接用窗口函数ROW_NUMBER()按经理分组计数即可:

SELECT
  Manager_id,
  -- 按Manager_id分组,组内按销售代表名称排序生成从1开始的序号
  CONCAT('Rep_', ROW_NUMBER() OVER(PARTITION BY Manager_id ORDER BY Sales_reps)) AS rep_number
FROM 你的业务表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 05:15:00