代码: 全选
WITH cte AS (
SELECT
AccountID,
AccountSize,
SUM(AccountSize) OVER (ORDER BY AccountID) AS RunningTotal,
ROW_NUMBER() OVER (ORDER BY AccountID) AS RowNum
FROM Account
),
cte2 AS (
SELECT
AccountID,
AccountSize,
RunningTotal,
RowNum,
CASE
WHEN RunningTotal - AccountSize < 1000 THEN RowNum
ELSE RowNum - 1
END AS GroupID
FROM cte
)
SELECT
AccountID,
AccountSize,
GroupID
FROM cte2
ORDER BY AccountID;

