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

行汇总并新增行:基于原表生成符合规则的临时表

基于现有表生成带部门汇总行的临时表

原始数据表

DepartmentNameSubDivisionNameImportance
SecurityCyber1
SecurityAirlines2
SecurityBanks3
HealthChildren4
HealthElderly5
HousingHousing6
Misc7

需求说明

需要创建临时表,满足:

  • 若DepartmentName分组后记录数>1,为该部门新增一行SubDivisionName为空的汇总行
  • 所有行的Importance按新顺序重新连续编号:先部门汇总行(如有),再该部门子分部行,整体顺序与原始表部门顺序一致

解决方案(SQL)

WITH DeptInfo AS (
    -- 标记每个部门是否需要生成汇总行
    SELECT 
        DepartmentName,
        SubDivisionName,
        Importance,
        CASE WHEN COUNT(*) OVER (PARTITION BY DepartmentName) > 1 THEN 1 ELSE 0 END AS NeedSummary
    FROM OriginalTable
),
AllRows AS (
    -- 生成部门汇总行(仅针对需要的部门)
    SELECT 
        DepartmentName,
        '' AS SubDivisionName,
        MIN(Importance) OVER (PARTITION BY DepartmentName) AS SortKey,
        0 AS RowType -- 0表示汇总行,确保排在部门原始行之前
    FROM DeptInfo
    WHERE NeedSummary = 1
    GROUP BY DepartmentName
    UNION ALL
    -- 保留所有原始行
    SELECT 
        DepartmentName,
        SubDivisionName,
        Importance AS SortKey,
        1 AS RowType -- 1表示原始行
    FROM DeptInfo
)
-- 创建临时表并生成连续的Importance序号
SELECT 
    DepartmentName,
    SubDivisionName,
    ROW_NUMBER() OVER (
        ORDER BY 
            SortKey,        -- 保证部门顺序与原始表一致
            RowType,        -- 汇总行优先
            SubDivisionName -- 原始行按子分部名称排序(也可替换为原始Importance)
    ) AS Importance
INTO #TempDepartment
FROM AllRows;

结果验证

生成的临时表数据如下:

DepartmentNameSubDivisionNameImportance
Security1
SecurityCyber2
SecurityAirlines3
SecurityBanks4
Health5
HealthChildren6
HealthElderly7
HousingHousing8
Misc9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:05:27