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

如何将指定范围的修改记录按固定数量分组并确定ID序列

实现修改记录的分组统计

需求说明

现有一张包含300条记录的数据表,需筛选出今日已修改的行。已知这类修改记录的ID范围(例如min=1、max=100),但实际仅存在37条ID不连续的修改记录,需要将这些记录按每组最多10条划分,输出格式如下:

row_group_rangeid_valuesrow_group
101,3,5,6,7,10,14,16,20,221
1026,30,33,36,41,44,48,52,60,612
1065,68,70,72,75,77,79,80,84,853
890,91,92,93,94,95,96,984

SQL实现方案

假设数据表名为your_table,修改时间字段为modified_at,可通过以下SQL语句直接生成分组结果:

WITH modified_records AS (
    -- 筛选今日修改的记录并按ID排序,分配行号
    SELECT 
        id,
        ROW_NUMBER() OVER (ORDER BY id) AS row_num
    FROM your_table
    WHERE DATE(modified_at) = CURRENT_DATE -- MySQL可替换为CURDATE(),Oracle用TRUNC(SYSDATE)
)
SELECT 
    COUNT(id) AS row_group_range,
    STRING_AGG(CAST(id AS VARCHAR), ',') AS id_values, -- PostgreSQL用法,MySQL用GROUP_CONCAT(id),Oracle用LISTAGG(id, ',')
    FLOOR((row_num - 1)/10) + 1 AS row_group
FROM modified_records
GROUP BY FLOOR((row_num - 1)/10) + 1
ORDER BY row_group;

关键逻辑说明:

  1. modified_records CTE:筛选今日修改的记录,并用ROW_NUMBER()按ID排序给每条记录分配行号
  2. 分组计算:通过FLOOR((row_num - 1)/10) + 1将行号1-10归为组1,11-20归为组2,以此类推
  3. 聚合操作:用COUNT(id)统计每组记录数,对应数据库的字符串聚合函数将每组ID拼接为逗号分隔的字符串

Python实现方案

如果需要在应用层处理,可先从数据库查询出所有今日修改的ID并排序,再通过切片分组:

# 假设已从数据库获取到排序后的修改ID列表
modified_ids = [1,3,5,6,7,10,14,16,20,22,26,30,33,36,41,44,48,52,60,61,65,68,70,72,75,77,79,80,84,85,90,91,92,93,94,95,96,98]

group_size = 10
result = []

for idx in range(0, len(modified_ids), group_size):
    current_group = modified_ids[idx:idx+group_size]
    result.append({
        "row_group_range": len(current_group),
        "id_values": ",".join(map(str, current_group)),
        "row_group": (idx // group_size) + 1
    })

# 打印格式化结果
print("row_group_range | id_values                         | row_group")
print("------------------------------------------------------------------------------------")
for item in result:
    print(f"{item['row_group_range']:<19} | {item['id_values']:<38} | {item['row_group']}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:22:46