如果我有一个来自 CTE 的输出数据集,看起来像
期间 FT 集团部门价值 1 实际 KINDER MATH 200 2 实际金德数学 363 3 实际金德数学 366 1 预算金德数学 457 2 预算 KINDER MATH 60 3 预算金德数学 158 1 实际 HIGHSCH 英语 456 2 实际 HIGHSCH 英语 745 3 实际 HIGHSCH 英语 125 1 预算 HIGHSCH 英语 364 2 预算 HIGHSCH 英语 158 3 预算 HIGHSCH 英语 200 6 预算 HIGHSCH 英语 502 7 预算 HIGHSCH 英语 650 1 实际 COLL ENGLISH 700 2 实际 COLL ENGLISH 540 3 实际 COLL ENGLISH 160 1 预算 COLL 英语 820 2 预算 COLL 英语 630 3 预算 COLL 英语 800
但我想添加一个列,该列将具有每个组的标识符(按 FT、Group 和 Dept 分组),如下所示:
期间 FT 组部门值 GroupID 1 实际 KINDER MATH 200 1 2 实际 KINDER MATH 363 1 3 实际 KINDER MATH 366 1 1 预算 KINDER MATH 457 2 2 预算 KINDER MATH 60 2 3 预算金德数学 158 2 1 实际 HIGHSCH 英语 456 3 2 实际 HIGHSCH 英语 745 3 3 实际 HIGHSCH 英语 125 3 1 预算 HIGHSCH 英语 364 4 2 预算 HIGHSCH 英语 158 4 3 预算 HIGHSCH 英语 200 4 1 预算 HIGHSCH 英语 502 5 2 预算 HIGHSCH 英语 650 5 3 预算 HIGHSCH 英语 336 5 1 实际 COLL ENGLISH 700 6 2 实际 COLL 英语 540 6 3 实际 COLL 英语 160 6 1 预算 COLL 英语 820 7 2 预算 COLL 英语 630 7 3 预算 COLL 英语 800 7
请问你知道怎么做吗?
编辑:我觉得这个方向的东西可能有用
SELECT *,
CASE WHEN FT = 'Actual' THEN <something_incremental_to_do_with_row_num> OVER (PARTITION DEPT, GROUP, FT) END as GROUPID
FROM cte
我不能在 OVER 子句中使用 ORDER BY,因为我在 2008 年