現在我包含一些與我的應用程序並行,我不確定數據可以按正確的順序處理。所以我在查詢中返回下限和上限傳遞到ProcessZZ
。我如何計算行之間的差距
我的表avl_pool有avl_id
和has_link
和其他一些領域和穩定的數據流,當新的數據到達他們開始與has_link=null
,當ProcessX
光潔度has_link
有鏈接值xxxx
行是一些數字。
現在下一步我只能處理那些帶有鏈接的行,但我不能跳過行,因爲順序非常重要。
在這種情況下,我需要ProcessZZ(23561211, 23561219)
rn | avl_id | has_link
1 | 23561211 | xxxx -- start
2 | 23561212 | xxxx
3 | 23561213 | xxxx
4 | 23561214 | xxxx
5 | 23561215 | xxxx
6 | 23561216 | xxxx
7 | 23561217 | xxxx
8 | 23561218 | xxxx
9 | 23561219 | xxxx -- end
10 | 23561220 | null
11 | 23561221 | xxxx
12 | 23561222 | xxxx
13 | 23561223 | xxxx
目前我有:
-- starting avl_id need to be send to ProcessZZ
SELECT MIN(avl_id) as min_avl_id
FROM avl_db.avl_pool
WHERE NOT has_link IS NULL
-- first avl_id still on hands of ProcessXX (but can be null)
SELECT MIN(avl_id) as max_avl_id -- here need add a LAG
FROM avl_db.avl_pool
WHERE has_link IS NULL
AND avl_id > (SELECT MIN(avl_id)
FROM avl_db.avl_pool
WHERE NOT has_link IS NULL)
-- In case everyone has_link already the upper limit is the last one on the table.
SELECT MAX(avl_id) as max_avl_id
FROM avl_db.avl_pool
我可以把寄託都在muliple CTE和返回兩個結果,但我認爲這是可以處理像一些島嶼,但不知道如何。
所以查詢應該看起來像
SELECT min_avl_id, min_avl_id
FROM cte
min_avl_id | min_avl_id
23561211 | 23561219
你可以編輯你的問題,並顯示你正在尋找什麼結果? –
在這種情況下,我需要兩列值爲23561211,23361219' –