|
提供另一种实现,效率不如bell大神的好
SELECT REGION, MAX(LV)
FROM (SELECT LEVEL LV, REGION
FROM (SELECT *
FROM (SELECT DT,
REGION,
CASE
WHEN LAG(AMOUNT, 1, AMOUNT)
OVER(PARTITION BY REGION ORDER BY DT) <
AMOUNT THEN
1
ELSE
0
END AS FLAG
FROM PRODUCT)
WHERE FLAG = 1)
CONNECT BY NOCYCLE PRIOR REGION = REGION
AND PRIOR ADD_MONTHS(DT, 1) = DT)
GROUP BY REGION |
|