我有一個產品清單和與單個表中銷售數量相對應的計數。數據佈局爲這樣:TERADATA從滾動SUM限制創建組標識
Product Name QTY_SOLD
Mouse 23
Keyboard 25
Monitor 56
TV 10
Laptop 45
...
我想創造一個組被創建一個組ID,如果銷售數量的滾動總和大於50.我們可以通過產品名稱訂購更大,以得到一個類似的輸出以下。
Product Name QTY_SOLD GROUP_NBR
Keyboard 25 1
Laptop 45 1
Monitor 56 2
Mouse 23 3
TV 10 3
我創建了一個case語句來創建輸出我的需要,但如果我想組ID截止50改說100,如果我得到更多的產品和數量我必須不斷變化的情況說明。有沒有簡單的方法來使用遞歸或其他方法來適應此? 這部作品的Teradata 13.10
UPDATE main FROM prod_list AS main,
(
SEL PROD_NAME
, QTY_SOLD
, SUM(QTY_SOLD) OVER (ORDER BY PROD_NAME ROWS UNBOUNDED PRECEDING) RUNNING FROM prod_list
) inr
SET GROUP_NBR = CASE
WHEN RUNNING < 50 THEN 1
WHEN RUNNING > 50 AND RUNNING < 100 THEN 2
WHEN RUNNING > 100 AND RUNNING < 150 THEN 3
WHEN RUNNING > 150 AND RUNNING < 200 THEN 4
WHEN RUNNING > 200 AND RUNNING < 250 THEN 5
ELSE 6
END
WHERE main.PROD_NAME = inr.PROD_NAME ;
我從來沒有見過這個功能,但它完美的工作。謝謝。 –